Configure Azure DevOps for JFrog

  • Release version: Washingtondc
  • Updated August 1, 2024
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Configure Azure DevOps for JFrog

    This guide provides detailed steps to configure Azure DevOps for integrating with JFrog Artifactory, allowing for the upload and download of JFrog artifacts within your DevOps pipelines. Proper configuration enables seamless artifact management and streamlines your CI/CD processes.

    Show full answer Show less

    Key Features

    • Service Connection Setup: Install the JFrog Artifactory plugin and create a service connection in Azure DevOps using your JFrog instance credentials.
    • Artifact Upload: Use the Artifactory Generic Upload task to upload artifacts from Azure DevOps to JFrog, ensuring to collect build information.
    • Artifact Download: Use the Artifactory Generic Download task to retrieve artifacts from JFrog to Azure DevOps, also collecting relevant build information.

    Key Outcomes

    By following this configuration process, you will enable your Azure DevOps instance to effectively manage JFrog artifacts, improving deployment efficiency and maintaining build integrity through consistent artifact tracking.

    Configure your Azure DevOps instance to enable upload and download of JFrog artifacts.

    The following settings are required in your Azure DevOps instance:
    1. Install the plugin JFrog Artifactory.
    2. Select your project and navigate to Project settings > Pipelines > Service connections.
    3. Select New service connection, search and select the installed JFrog Artifactory plugin, and select Next.
    4. Enter your JFrog instance details and create a service connection for JFrog.
      New JFrog Artifactory service connection.
      Note:
      The Username and Password fields must contain the credentials to your JFrog instance entered in the Server URL field.

    Upload artifacts from Azure DevOps to JFrog

    To upload artifacts:
    1. Navigate to your project pipeline.
    2. In your stage for uploading, add the task Artifactory Generic Upload for uploading artifacts.
    3. For the Artifactory Generic Upload task:
      1. Select the service connection you created for JFrog.
      2. In the Spec field, entire your file spec.
      3. Select the Collect build info check box.
      4. The Build number field should contain the BuildId parameter.
      5. Select Add.

      Artifactory Generic Upload task.

    4. Add the task Artifactory Publish Build Info for publishing build info.
    5. For the Artifactory Publish Build Info task:
      1. Select the service connection you created for JFrog.
      2. The Build number field should contain the BuildId parameter.
      3. Select Add.

      Artifactory Publish Build Info task.

    Sample pipeline to upload artifacts from Azure DevOps to JFrog

    
    trigger:
    - none
    pool: 
      vmImage: ubuntu-latest
     
    
    variables:
    - group: Variable Group
    
    stages:
      - stage: upload_artifact
        jobs:
          - job: 'upload'
            steps:
            - script: echo Hello, world!
              displayName: 'Run a one-line script'
            - task: ArtifactoryGenericUpload@2
              inputs:
                artifactoryService: 'JFrogCloud'
                specSource: 'taskConfiguration'
                fileSpec: |
                  {
                    "files": [
                      {
                        "pattern": "servicenow-app-devops.zip",
                        "target": "local-repo"
                      }
                    ]
                  }
                collectBuildInfo: true
                buildName: '$(Build.DefinitionName)'
                buildNumber: '$(Build.BuildId)'
                failNoOp: true'
            - task: ArtifactoryPublishBuildInfo@1
              inputs:
                artifactoryService: 'JFrogCloud'
                buildName: '$(Build.DefinitionName)'
                buildNumber: '$(Build.BuildId)'

    Download artifacts from JFrog to Azure DevOps

    To download artifacts:
    1. Navigate to your project pipeline.
    2. In your stage for downloading, add the task Artifactory Generic Download for downloading artifacts.
    3. For the Artifactory Generic Download task:
      1. Select the service connection you created for JFrog.
      2. In the Spec field, entire your file spec.
      3. Select the Collect build info check box.
      4. The Build number field should contain the BuildId parameter.
      5. Select Add.
    4. Add the task Artifactory Publish Build Info for publishing build info.
    5. For the Artifactory Publish Build Info task:
      1. Select the service connection you created for JFrog.
      2. The Build number field should contain the BuildId parameter.
      3. Select Add.

    Sample pipeline to download artifacts from Azure DevOps to JFrog

    
    trigger:
    - none
    pool: 
      vmImage: ubuntu-latest
     
    
    variables:
    - group: Variable Group
    
    stages:        
      - stage: download_artifact
        jobs:
          - job: 'download'
            steps:
            - task: ArtifactoryGenericDownload@3
              inputs:
                connection: 'JFrogCloud'
                specSource: 'taskConfiguration'
                fileSpec: |
                  {
                    "files": [
                      {
                        "pattern": "local-repo/servicenow-app-devops.zip",
                        "target": "/tmp/"
                      }
                    ]
                  }
                collectBuildInfo: true
                buildName: '$(Build.DefinitionName)'
                buildNumber: '$(Build.BuildId)'
                failNoOp: true
            - task: ArtifactoryPublishBuildInfo@1
              inputs:
                artifactoryService: 'JFrogCloud'
                buildName: '$(Build.DefinitionName)'
                buildNumber: '$(Build.BuildId)'