Cloud customer?
Start for Free>
Upgrade in MyJFrog >
What's New in Cloud >





We Created a New Extension

General

We have recently released a new extension for Azure DevOps - theJFrog Azure DevOps Extension. The new extension can be installed and used side by side with this extension. If you're already using the Artifactory Azure DevOps Extension, we recommend also installing the newJFrog Azure DevOps Extension, and gradually migrating your tasks from the old extension to the new one. The old extension will continue to be supported, however new functionality will most likely make it into the new extension only.

Why?

我们希望to make sure new functionality and improvements are added to the extension. However, our primary goal is making sure your pipelines and releases continue to function as expected by maintaining backward compatibility. As more changes were added however, we were approaching the extension size limit. In addition, following the need to start utilizing JFrog CLI v2, which includes breaking changes compared to v1, it seemed like the right time to create a new extension, that can run together with the old one, and allow you to gradually migrate when the time is right for you.

What's changed in the new extension?

  • The new extension utilizesJFrog CLI V2.
  • The old extension'sArtifactoryGeneric Upload,ArtifactoryGeneric DownloadandArtifactoryProperties任务s are replaced in the new extension with theJFrog Generic Artifacts任务
  • In addition to the above, the newJFrog Generic Artifacts任务also supports copying, moving and deleting artifacts on Artifactory.
  • The newJFrog Audit任务added to the new extension allows auditing your projects for security vulnerabilities with JFrog Xray.
  • The newJFrog CLI V2任务can execute any JFrog CLI command, compared to the oldJFrog CLI task, which can run only command starting withjfrog rt.
  • The newJFrog Tools Installer任务now expects the JFrog CLI's Remote repository to be pointing to"https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/".

New vs. old tasks

To help you migrate your tasks from the old Artifactory Extension to the new JFrog Extension, we listed the old vs. new tasks names for you.

ArtifactoryExtension Task

JFrog Extension Task

ArtifactoryTools Installer

JFrog Tools Installer

ArtifactoryGeneric Upload

JFrog Generic Artifacts

ArtifactoryGeneric Download

JFrog Generic Artifacts

ArtifactoryProperties

JFrog Generic Artifacts

ArtifactoryDocker JFrog Docker

ArtifactoryMaven

JFrog Maven

ArtifactoryGradle

JFrog Gradle

ArtifactoryNpm

JFrog Npm

ArtifactoryNuget

JFrog Nuget

Artifactory.NET Core

JFrog .NET Core

ArtifactoryPip

JFrog Pip

ArtifactoryConan

JFrog Conan

ArtifactoryGo

JFrog Go

ArtifactoryCollect Build Issues

JFrog Collect Build Issues

ArtifactoryPublish Build Info

JFrog Publish Build Info

ArtifactoryBuild Promotion

JFrog Build Promotion

ArtifactoryXray Scan

JFrog Build Scan

ArtifactoryDiscard Builds

JFrog Discard Builds

Distribution

JFrog Distribution

JFrog CLI

JFrog CLI V2

Overview

Artifactorybrings continuous integration toAzure DevOpsthrough theJFrog ArtifactoryExtension.

TheJFrog Artifactoryextension for Azure DevOps supports:

  • Resolving your build dependencies from Artifactory.
  • Deploying your build artifacts to Artifactory.
  • Gaining full traceability of your builds by capturing your build-info from your builds and publishing to Artifactory.

The JFrog Extension requires a licensed instance of Artifactory.


源Code

The extension isan open-source project on GitHubwhich you can freely browse and fork.


Installation and Setup

Installing the Extension

The Artifactory extension for Azure DevOps is available in theVisual Studio Marketplace.

To install the Artifactory extension, execute the following steps:

  1. Go to the Visual Studio Marketplace and sign in to your account.
  2. Select theJFrog Artifactoryextension located in theBuild and Releasesection.
  3. In the Artifactory Extension page, clickInstall.
  4. Select the account to which you want to apply the extension and confirm installation.

Installing the Build Agent

To run the Artifactory tasks, the build agents use three tools:

  • JFrog CLI: Runs all the Artifactory tasks.
  • Maven Extractor: Runs theArtifactoryMaven任务.
  • Conan client: Runs theArtifactoryConan任务.

Running Artifactory Conan tasks

Any structure on your agent'sfile.The Artifactory Conan tasks uses the Conan client. The Conan client cannot be installed using the Automatic Installation or the Artifactory Tools Installer but is required to be manually installed.To install Conan on an agent, read theInstall Conansection.

The tools can be installed on the build agents using one of the following methods.

Page Contents

Automatic Installation

If the build agent has access to the internet, JFrog CLI and the Maven Extractor are downloaded and installed automatically on the agent the first time they are required.

ArtifactoryTools Installer

If your agent has no internet access, you can configure the pipeline to download JFrog CLI and the Maven Extractor from an Artifactory instance, which is configured to proxy the download repositories.

  1. Create two remote repositories in Artifactory:
    1. A repository for downloadingJFrog CLI.
      Set the URL of the JFrog CLI repository tohttps://releases.jfrog.io/artifactory/jfrog-cli/v1/
    2. A repository for downloading theMaven and Gradle Extractors.
      Set the URL of theExtractors repository to:https://releases.jfrog.io/artifactory/oss-release-local/
    In the following examples, the JFrog CLI repository is set asjfrog-cliand Maven Extractor repository isextractors. You can rename the two repositories to meet your needs.
  2. Make sure to configure the Artifactory server with thejfrog-cliandextractorsrepositories in Azure DevOps, as described in theConfiguring the Artifactory Service Endpointsection.
  3. Add theArtifactoryTools Installer任务to your build or release pipeline.
  4. Select the Artifactory service you configured.
  5. Selectjfrog-clias the target repository to download the JFrog CLI .
    If your pipeline uses theArtifactoryMavenorArtifactoryGradle任务, selectextractorsas the repository to download the Maven Extractor.

Manual Installation

Installing JFrog CLI

The extension runs JFrog CLI in the background to run many of its operations. The extension automatically downloads and installs the JFrog CLI on the build agent the first time it's required. However, if your build agent does not have access to the internet, the build will fail when attempting to download JFrog CLI and you'll need to download and install it manually.

To install JFrog CLI on an agent with no internet access:

  1. Create the directory structure on your agent'sfile-system: $(Agent.ToolsDirectory)/_jfrog/current/.
  2. Download the latest JFrog CLI version fromhere. Please make sure to download the executable matching your agent's operating system.
  3. Copy the downloaded JFrog executable to the "current" directory you created.

Installing JFrog CLI

In versions prior to 1.8.2, the JFrog CLI manual installation path is:$(Agent.WorkFolder)/_jfrog/current/

Installing the Maven Extractor

When triggering theArtifactoryMaven任务, JFrog CLI automatically downloads the Maven Extractor jar to the build agent第一次是必需的。然而,如果你的中方ld agent does not have access to the internet, the build will fail when attempting to download the file.You'll therefore need to download and install it manually.

To install the Maven Extractor jar on an agent with no internet access:

  1. Create the directory structure on your agent's file-system:$(Agent.ToolsDirectory)/_jfrog/.jfrog/dependencies/maven/2.28.6
  2. Download thebuild-info-extractor-maven3-2.28.6-uber.jarand place it inside the "maven" directory you created.

Installing the Maven Extractor

In plugin versions prior to 1.8.2, Maven Extractor's manual installation path is:$(Agent.WorkFolder)/_jfrog/.jfrog/dependencies/maven/2.13.13

Installing the Gradle Extractor

When triggering theArtifactoryGradle任务, JFrog CLI automatically downloads the Gradle Extractor jar to the build agent第一次是必需的。然而,如果你的中方ld agent does not have access to the internet, the build will fail when attempting to download the file. You'll therefore need to download and install it manually.

To install the Gradle Extractor jar on an agent with no internet access:

  1. Create the directory structure on your agent's file-system:$(Agent.ToolsDirectory)/ / gradle / 4.24.12 _jfrog / .jfrog /依赖关系
  2. Download thebuild-info-extractor-gradle-4.24.12-uber.jarand place it inside the "gradle" directory you created.
Installing Conan

For the build agent to be able to run conan builds, do the following:

  1. Access the agent and install conan by followingthese steps.
  2. Confirm that the conan executable is available in the Path environment variable of the user which runs the build on the agent.

Using TFS 2015

Prerequisites

Node.JS version 8 and above

The build agent requires using Node.JS version 8 and above.To check which version of Node.JS is running on the build agent:

  1. Navigate to theWorker\Handlers\Nodefolder located under theAgent home.
  2. From the terminal, runnode -v.


To upgrade Node.JS on the build agent:

  • Replace the existing node.exe file on the agent with the node.exe file with the required version located in theWorker\Handlers\Nodefolder under the agent home.

Configuring the JFrog Artifactory and JFrog Distribution Service Connection

To allow your builds to work with JFrog Artifactory, you'll need to configure your JFrog Artifactory instance as a Service Connection. In addition, to use the Distribution task, configure your JFrog Distribution instance as a service connection,

  1. Access your Azure DevOps project and clickProject Settings > Pipeline > Service connections>New service connectionand selectJFrog ArtifactoryorJFrog Distribution.
  2. Configure the details of theJFrog ArtifactoryorJFrog Distributioninstance. You may configure the connection to use Basic Authentication or an Access Token.


Not Using a Public CA (Certificate Authority)?

This section is relevant for you, if you're not using a public CA (Certificate Authority) to issue the SSL certificate used to connect to your Artifactory domain. You may not be using a public CA either because you're using self-signed certificates or you're running your own PKI services in-house (often by using a Microsoft CA).

In this case, you'll need to make those certificates available for JFrog CLI, which is used by most of Artifactory tasks. To make the certificates available for JFrog CLI, you'll need to place them inside the security/certs directory, which is under JFrog CLI's home directory. The home directory default location is$(Agent.ToolsDirectory)/_jfrog

Read more about this in theJFrog CLI文件.

Can't Access Artifactory?

Make sure that the URL of the Artifactory instance does not end with a slash.

Still can't access Artifactory?

For security reasons, Artifactory SaaS supports only TLS 1.2. Since not all TFS versions support TLS 1.2, you may need to enable TLS 1.2 on TFS.
To enable TLS 1.2 on TFS:
1. Create a file and name and name it:Microsoft.PowerShell_profile.ps1
2. Add the following line to the file:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

3. Place the file in the following location on the TFS machine:C:\Users\\Documents\WindowsPowerShell

Make sure matches the name of the user running TFS and the build agents.

Downloading Generic Dependencies from Artifactory

TheArtifactoryGeneric Download任务supports downloading your build dependencies from Artifactory to the build agent.
The task triggersJFrog CLIto perform the download in the background and is defined usingusing File Specsand can also be configured to capture the build-info.
The task stores the downloaded files as dependencies in the build-info which can later be published to Artifactory using theArtifactoryPublish Build-Info任务.

When configuring the task, do the following:

  1. Select your configured Artifactory service endpoint.
  2. Specify whether you'd like define the File Spec through the task UI or have the task read the spec from a file.
  3. Set the File Spec content or a path to the File Spec.
  4. Set the other task options.
  5. Check theAdvancedsection for additional options.

Uploading Generic Artifacts to Artifactory

TheArtifactoryGeneric Upload任务supports uploading your generated build artifacts from the build agent's local file system to Artifactory.
The task triggersJFrog CLIto perform the upload in the background.
The artifacts are defined usingFile Specsand can also be configured to capture build-info as it stores the uploaded files as artifacts in the build-info. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

When configuring the task, do the following:

  1. Select your configured Artifactory service endpoint.
  2. Specify whether you'd like define the File Spec through the task UI or have the task read the spec from a file.
  3. Set the File Spec content or a path to the File Spec.
  4. Set the other task options.
  5. Check theAdvancedsection for additional options.

Setting and Deleting Properties on Files in Artifactory

Artifactoryallows you to place properties on files.Setting (and deleting) properties is supported by local repositories or local-cache repositories. While you cannot set or delete properties on virtual repositories, you can retrieve them.

TheArtifactoryProperties任务supports setting and deleting properties on filesusing File Specs.

For more information about managing properties in Artifactory, seeProperties.

Triggering Builds

You can trigger the following builds.

Triggering Maven Builds

TheArtifactoryMaven任务allows triggering Maven builds, while resolving dependencies and deploying artifacts from and to Artifactory.

The task can also be configured to capture build-info and store the downloaded and uploaded artifacts as build dependencies and build artifacts. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

You also have the option of filtering out some of the Maven artifacts that will be deployed to Artifactory. You do this by defining one or more include patterns. You can also define one or more exclude patterns. The patterns can include wildcards and should separated by a comma followed by a white-space as shown below.

For more information about Maven repositories, seeArtifactoryMaven Repository.


Triggering Gradle Builds

TheArtifactoryGradle任务allows triggering Gradle builds, while resolving dependencies and deploying artifacts from and to Artifactory.

The task can also be configured to capture build-info and store the downloaded and uploaded artifacts as build dependencies and build artifacts. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

Behind the scenes, theArtifactoryGradle任务uses theGradle Artifactory Pluginto integrate with the Gradle build. In case your Gradle script already applies theGradle Artifactory Plugin, set theUse Artifactory Pluginoption, to let the task know that it shouldn't apply the plugin in the Gradle script.

You should setartifactoryPublishas one of the Gradle tasks in theTask(s) fields.artifactoryPublishis a task that is exposed by the Gradle Artifactory Plugin, and is used for deploying artifacts as well as publishing build-info to Artifactory.

Triggering Npm Builds

TheArtifactoryNpm任务allows triggering npm builds, while resolving npm dependencies and deploying npm packages from and to Artifactory.

The task can be also configured to capture build-info and store the uploaded files as artifacts in it. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

有关npm存储库的信息,明白了Artifactorynpm Registry.

Triggering Nuget and .NET Core Builds

TheArtifactoryNugetandArtifactory.NET Core任务s allow restoring NuGet packages from Artifactory. These tasks also allow publishing NuGet packages to Artifactory. The tasks can be configured to capture build-info. The build-info stores the restored packages as build dependencies and uploaded packages as build artifacts. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

For more information about Nuget repositories, seeArtifactoryNuGet Repositories.

Triggering Python Builds Using Pip

TheArtifactoryPip任务allows installing Pip packages from Artifactory. The tasks can also be configured to capture build-info. The build-info stores the installed packages as build dependencies. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

Recording all dependencies as part of the build-info

When running the Artifactory Pip task inside a Python environment, which already has some of the packages installed, the installed packages will not be included as part of the build-info, if they were not originally installed from Artifactory. A warning message will be added to the build log in this case.

How to include all packages in the build-info?

Running the task for the first time with theDisable local pip cacheoption checked, should re-download and install these packages, and they will therefore be included in the build-info. It is also recommended to run the command from inside avirtual environment. TheVirtual environment setup commandfield allows this.

Behind the scenes, the task uses JFrog CLI as a wrapper for pip. JFrog CLI also includes a caching mechanism, which stores the details of the dependencies locally, making sure they are included in the build-info, even if they are already cached locally. Read more about thishere.

Triggering Conan Builds

Conanis a package manager for C and C++.

TheArtifactoryConan任务可以触发一个柯南resolvi时构建ng conan dependencies from a conan repository in Artifactory. It also allows publishing conan packages to an Artifactory conan repository. The task can be also configured to capture build-info and store the downloaded and uploaded packages as build dependencies and artifact. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

The tasks supports theconfig install,add remote,createanduploadconan commands. In addition, it supports acustomoption, allowing to configure the task to execute any conan command. The full documentation of cona is available at theconan web site.


For more information about Conan repositories, seeArtifactoryConan Repositories.

Triggering Go Builds

TheArtifactoryGo任务allows triggering a go build, while resolving go dependencies from a go repository in Artifactory. It also allows publishing go packages to an Artifactory go repository. The task can be also configured to capture build-info and store the downloaded and uploaded packages as build dependencies and artifact. The captured build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

For more information about Go repositories, seeArtifactoryGo Repositories.

Pushing and Pulling Docker Images to and from Artifactory

TheArtifactoryDocker任务allows pushing and pulling docker images to and from a docker repository in Artifactory. The task can be also configured to capture build-info for the pushed or pulled image. In addition to details about the build and the build environment, the build info includes the image layers as build dependencies and build artifacts. The task stores build info locally on the build agent. The stored build-info can be later published to Artifactory using theArtifactoryPublish Build-Info任务.

For more information about Docker and Artifactory, seeArtifactoryDocker Registry.

Collecting Build Issues

Being able to look at thebuildwhich was published to Artifactory, and see all JIRAissuesassociated with it, is one of the most powerful capabilities of Artifactory when it comes to managing metadata about artifactsbuilds.

TheArtifactoryCollect Build Issues任务collects the list of tracked project issues (for example, issues stored in JIRA or any other bug tracking systems, and adds these issues to the build-info. The issues are collected by reading the git commit messages from the local git log. Each commit message is matched against a pre-configured regular expression, which retrieves the issue ID and issue summary. The information required for collecting the issues is retrieved from a yaml configuration, which is set as part fo the task.

Here'sthe yaml configuration structure.

version: 1 issues: trackerName: JIRA regexp: (.+-[0-9]+)\s-\s(.+) keyGroupIndex: 1 summaryGroupIndex: 2 trackerUrl: http://my-jira.com/issues aggregate: true aggregationStatus: RELEASED
Configuration properties

Property name

Description

Version The schema version is intended for internal use. Do not change!
trackerName The name (type) of the issue tracking system. For example, JIRA. This property can take any value.

regexp

A regular expression used for matching the git commit messages. The expression should include two capturing groups - for the issue key (ID) and the issue summary. In the example above, the regular expression matches the commit messages as displayed in the following example:

HAP-1007 - This is a sample issue

keyGroupIndex

The capturing group index in the regular expression used for retrieving the issue key. In the example above, setting the index to "1" retrievesHAP-1007from this commit message:

HAP-1007 - This is a sample issue

summaryGroupIndex

The capturing group index in the regular expression for retrieving the issue summary. In the example above, setting the index to "2" retrievesthesample issue from this commit message:

HAP-1007 - This is a sample issue

trackerUrl The issue tracking URL. This value is used for constructing a direct link to the issues in the Artifactory build UI.

aggregate

Set to true, if you wish all builds to include issues from previous builds.

aggregationStatus

If aggregate is set to true, this property indicates how far in time should the issues be aggregated. In the above example, issues will be aggregated from previous builds, until a build with a RELEASE status is found. Build statuses are set when a build is promoted using thejfrog rt build-promotecommand.


The yaml configuration can be either be stored as text as part of the task configuration, or stored in a file. The file can be saved in the source control, and fetched, together with the rest of the sources to the build agent. It can then be accesses and used by this task.


Publishing Build Info to Artifactory

TheArtifactoryGeneric DownloadandArtifactoryGeneric Upload任务s can be configured to collect and store build-info locally. The collected build info can be then published to Artifactory using theArtifactoryPublish Build Info任务.

For more information about Build Info, seeArtifactoryBuild Integration.

When configuring the task, select your configured Artifactory service endpoints and specify whether you'd like to collect environment variables from the agent and add them to the build-info.

After the build-info is published to Artifactory, it can be accessed from theArtifactorytab in the Build Results.

Promoting Published Builds in Artifactory

To support the artifacts life-cycle, Artifactory supports promoting published builds from one repository to another.

TheArtifactoryBuild Promotion任务promotes a build, by either copying or moving the build artifacts and/or dependencies to a target repository.
This task can be added as part of a Build or Release pipeline.

Run these steps to configure theArtifactoryBuild Promotion任务:

  1. Select the configuredArtifactoryService, to which the build has been published.
  2. Specify the name of aTarget repositoryto which the build should be promoted.
  3. Set theStatusof the build and optionally add aComment. These details will be visible as part of the Build History in the Artifactory UI.
  4. (Optional) Set a源repositoryfor the promotion.
  5. Unselect theCopy/move build dependenciesfield to move or copy only the build artifacts the target repository.
  6. 复制和工件移动到圆盾t repository, select theCopy artifactsoption to copy the artifacts to the target repository.
  7. SelectDry runto test the promotion prior to running the build promotion.

BuildInfo

Using Build Promotion in a Release

You can control the life cycle of your artifacts by promoting them from one Artifactory repository to another. Build Promotion can come in handy when embedding it as part of release pipeline in Azure DevOps. To help you achieve this, follow these steps for creating a release which includes theArtifactoryBuild Promotion任务.

  1. Create a new Release.
  2. ClickEnvironmentand select a template for the release.
  3. ClickArtifactandselectBuildas the source type.
  4. Fill out the rest of the form details.
  5. If you'd like this release to always use the latest build from Artifactory, selectSpecify a specific build numberas theDefault versionand select one of the available build number i theBuild numberlist box.
  6. If you'd like to promote a specific build number during the release, selectSpecify at the time of release creationas theDefault version:
  7. If you wish to promote the latest build number, selectSpecify a specific build numberas theDefault versionand then selectany构建数字。然后,单击Variablestab and add theARTIFACTORY_RELEASE_BUILD_NUMBERpipeline variable withLATESTas the value.
  8. Configure theArtifactoryBuild Promotion任务as one of your release pipeline tasks.
    The task uses a build number which will be selected later on, upon creating a release.
  9. That's it, you're done!
    Now you can create the release. The build number that you'll choose is that one which will be promoted in Artifactory.

Scanning Published Builds with JFrog Xray

TheArtifactoryXray Scan任务allows triggering a build scan with JFrog Xray. For the build to be scanned, it first needs to be published to Artifactory using theArtifactoryPublish BuildInfo任务. When the scan is triggered, Artifactory will pass on the build to Xray, which will then scan the build artifacts. The scan is synchronous, meaning it will wait for the scan to finish.

If theAllow fail build任务option is set and Xray is configured to fail the build, the build pipeline will fail, if vulnerabilities are found.

After the Xray scan is completed, the report can be accessed from theArtifactorytab in the Build Results.


Using Published Artifacts in a Release

Artifacts which were published to Artifactory can be made available for a Release Pipeline. There are two ways to achieve this.

The first way is to use the Artifactory Download task to download the files during the release. Read more about this in the Downloading Generic Dependencies from Artifactory section.

You can also set Artifactory as an artifact source for the release. This allows downloading the artifacts for a build which was previously published to Artifactory. Read more about publishing builds to Artifactory in the Publishing Build Info to Artifactory section.

Follow these steps to add Artifactory as an artifact source to a Release.

  1. Create a new Release and click onArtifacts|Add




  2. Select theArtifactorysource type.




  3. Select an Artifactory service, a build name, and the default version to use.




    That's it! You're done.
    Now, when initiating the Release, the artifacts associated with the defined build are downloaded to the release agent.

Discarding Published Builds from Artifactory

To discard old runs of a build from Artifactory, add theArtifactoryDiscard Buildsto the pipeline.

Run these steps to configure the task.

  1. Select the configuredArtifactoryService, on which you'd like the builds to be discarded.
  2. Type the name of the build.
  3. Optionally set the maximum days to keep build runs. Build runs which are older will be discarded.
  4. Optionally set the maximum number of builds to keep.
  5. Optionally set of build runs in the form of 10,11,12,... to keep and not to discard.
  6. Check theDelete artifactscheckbox, to also delete the build artifacts and not only the build meta-data.
  7. Check the Async checkbox, to make the action asynchronous. In this case, the pipeline will not wait for the action to finish, but the pipeline will not be notified in case of a failure.

Managing and Distributing Release Bundles

JFrog Distributionis a centralized platform that lets you provision software release distribution. It is a core part of JFrog Enterprise+, managingrelease bundlesand their distribution processes, including release content, permission levels, and target destinations.Distribution provides a secure and structured platform to distribute release binaries to multiple remote locations and update them as new release versions are produced. As part of the release flow, release bundles are verified by the target destination to ensure that they are signed correctly and safe to use.

TheDistribution任务allows creating, updating, signing and deleting release bundles. It also allows distributing the release to the edge nodes.

  • The task requires configuring yourJFrog Distributioninstance as aService Connectionin Azure DevOps. You can then set the instance you configured as theDistribution servicevalue in the task.
  • The task triggersJFrog CLIto execute the distribution actions.
  • When creating or updating a release bundle, you need to provideFile Specsdefining the artifacts to be included in the release bundle.
  • When distributing a release bundle, you can control the distribution destinations by defining rules distribution rules in a JSON format. Here's an example.

    Distribution Rules JSON structure
    { "distribution_rules": [ { "site_name": "DC-1", "city_name": "New-York", "country_codes": ["1"] }, { "site_name": "DC-2", "city_name": "Tel-Aviv", "country_codes": ["972"] } ] }

    The Distribution Rules format also supports wildcards. For example:

    { "distribution_rules": [ { "site_name": "*", "city_name": "*", "country_codes": ["*"] } ] }


Executing JFrog CLI Commands

The extension support a genericJFrog CLI任务, which allows executingJFrog CLIcommands. The command will use the connection details provided by the selected Artifactory service, so there's no need to provide the connection details as command options.

The task supports commands with thejfrog rtprefix.

Release Notes

1.13.6 (March 28th, 2022)
  1. Support Nuget protocol configuration on Dotnet tasks.
1.13.5 (February 10th, 2022)
  1. Bug fix: use single quotes on a non windows agent.
1.13.3 (December 6th, 2021)
  1. Node6 to Node10 migration.
1.13.2 (October 11th, 2021)
  1. Bug fix: Support JFrog projects in Artifact Source in release pipelines.
1.13.1 (September 22th, 2021)
  1. Reduced extension size.
  2. Improved tasks documentation.
  3. Upgrade default JFrog CLI version.
1.13.0 (August 10th, 2021)
  1. Add JFrog Projects support for all tasks.
  2. Add support for include/exclude patterns for deployment in Artifactory Maven Task.
1.12.3 (May 25th, 2021)
  1. Bug fix: Artifactory Tools Installer - Make Server ID unique.
1.12.2 (May 3rd, 2021)
  1. Bug fix:ArtifactoryNuGet Restore task - Configured server deletion failed, which caused similar succeeding tasks to fail.
1.12.1 (May 1st, 2021)
  1. Artifactory NuGet v2默认任务——使用协议t and allow selecting the protocol version.
1.12.0 (April 29th, 2021)
  1. New Distribution task and Distribution Service Connection.
  2. Bug fix: Fix custom version in Tools Installer Task.

1.11.8 (April 16th, 2021)
  1. Bug fix: Artifactory Upload can fail with "refname is ambiguous" error

1.11.7 (April 15th, 2021)
  1. Bug fix: Artifactory Download can fail on Windows, when used with the "explode" option.

1.11.6 (April 13th, 2021)
  1. Bug fix: Fix partials build dir path for Conan.

1.11.5 (April 12th, 2021)
  1. Upgrade default JFrog CLI version.

1.11.4 (April 12th, 2021)
  1. Bug fix: Changed JFrog CLI download URL due to Bintray Maintenance.

1.11.2 (December 21st, 2020)
  1. Bug fix: Download and explode fails while inside a docker container.

1.11.1 (December 20th, 2020)
  1. Bug fix: Artifactory NuGet restore is unable to handle spaces in Destination directory.

  2. Bug fix: Gradle task unable to set the deployment repository.
1.11.0 (November 16th, 2020)
  1. New Artifactory Pip task.

  2. Add support for "jfrog rt curl" by the JFrog CLI task.

  3. Allow defining deployment path for NuGet and .Net Push.

1.10.6 (October 1st, 2020)
  1. Improvement: Maven - Skip deployment if no deployer is specified.
1.10.2 (August 13th, 2020)
  1. Bug fix: Invalid deployment repository dropdown list in .net push task.
1.10.1 (August 12th, 2020)
  1. Bug fix: Incorrect custom JFrog CLI version validation.
1.10.0 (June 15th, 2020)
  1. New Artifactory .NET Core task
  2. New JFrog CLI task
  3. ArtifactoryNuGet task - support for Linux
  4. ArtifactoryCollect Issues task - added default YAML template
  5. ArtifactoryConan task - removed async-await to reduce extension file size
1.9.4 (May 17th, 2020)
  1. Docker - Collect build info with remote repositories
  2. Bug fix: Duplicate layers in Docker build-info.
  3. Bug fix: Retries flag has no affect in upload and download tasks.
  4. Bug fix: Build promote fails with build params as env vars
1.9.2 (April 14th, 2020)
  1. Updated marketplace page.
1.9.0 (March 31st, 2020)
  1. New Artifactory Gradle task.
  2. New Collect Issues task.
  3. Add all JFrog CLI options in GenericDownload/GenericUpload tasks.
  4. Nuget - Allow adding properties to pushed packages.
  5. Bug fix: Fail the Release, if no build artifacts are downloaded from Artifactory, when it is defined as an Artifact Source.
  6. Bug fix: Do not generate a link to Xray when no scan-url is returned in the scan results.
  7. Bug fix: Tools installer may return HTTP error 400.
1.8.3(3月23rd, 2020)
  1. Allow using the 'regexp' File Spec property on Windows.
  2. Fixed a log masking issue.
1.8.2 (March 23rd, 2020)
  1. JFrog CLI download dir changed to $(Agent.ToolsDirectory) in order to support container jobs.
1.8.1 (November 27th, 2019)
  1. Artifactoryartifacts-source allows using ARTIFACTORY_RELEASE_BUILD_NUMBER environment variable to specify build number.
1.7.4 (November 7th, 2019)
  1. Performance improvements of generic tasks.
1.7.3 (November 6th, 2019)
  1. Bug fix: Artifactory Maven task fails quietly due to bug in appending build info flags.
1.7.2 (November 5th, 2019)
  1. Bug fix: Artifactory Discard builds task fails with 'parsing "undefined": invalid syntax'.
1.7.1 (November 4th, 2019)
  1. Bug fix: Generic Download task Ver2 not accessible.
1.7.0 (November 3rd, 2019)
  1. New Artifactory Go task.
  2. New Artifactory Properties task.
  3. Support for Artifactory access tokens.
  4. New link to the Xray Build Report from the Build Result page.
1.6.2 (July 9th, 2019)
  1. Bug fix: Npm task may fail with 'panic: runtime error: index out of range' (new JFrog CLI version).
1.6.1 (July 4th, 2019)
  1. Disable JFrog CLI's usage reporting.
1.6.0 (July 1st, 2019)
  1. New 'npm ci' command in Artifactory Npm task.
  2. Add 'Build info threads' attribute to Npm install task.
  3. Support forward slashes in File Specs on windows agents (new JFrog CLI version).
  4. Nuget build-info - Do not include projects which are detached from the solution (new JFrog CLI version).
1.5.0 (February 3rd, 2019)
  1. Allow downloading JFrog CLI and the Maven Extractor from Artifactory.
  2. Allow setting custom build name and number as part of the Artifactory tasks configuration.
  3. New Artifactory Discard Builds task.
1.4.1 (January 2nd, 2018)
  1. Added Artifactory as an artifacts-source for a release pipeline.
1.3.1 (November 26th, 2018)
  1. New Artifactory Xray Scan task.
  2. Added docker pull support to the Artifactory Docker task.
1.2.2 (October 15th, 2018)
  1. Use vsts-task-tool-lib to download JFrog CLI as a tool.
1.2.1 (October 8th, 2018)
  1. Support HTTP_PROXY, HTTPS_PROXY and NO_PROXY environment variables when downloading JFrog CLI.
1.2.0 (October 1st, 2018)
  1. New Artifactory Conan task.
  2. New Artifactory Docker task.
1.1.1 (September 12th, 2018)
  1. Fixed nuget push when the nupkg path includes wildcards.
1.1.0 (August 30th, 2018)
  1. New Artifactory Maven, Artifactory NPM and Artifactory Nuget tasks.
  2. Support reading File Specs from files in the Artifactory Download and Upload tasks.
  3. New "
  4. The "" fields was added to all tasks which support collecting build-info and removed from the Artifactory Publish Info task.
1.0.6 (August 15th, 2018)
  1. Reduced the extension size.
  2. Bug fix - Paths with white-spaces are not working properly on Windows agents.
1.0.4 (August 12th, 2018)
  1. Bug fix: Modified the Artifactory Generic Upload and Download tasks to use System.DefaultWorkingDirectory by default.
  2. Bug fix: Artifactory Generic Upload and Download tasks failed with error on Release.
  3. ArtifactoryPromotion task: Change Source and Target Repository fields to be drop down lists.
1.0.3 (August 9th, 2018)
  1. Bug fix: Generic Upload and Generic Download tasks on Windows can fail when using variables.
1.0.2 (July 30th, 2018)
  1. New Generic Upload and Generic Download tasks.
  2. New Promotion task.
  3. New Publish Build Info task.
  • No labels
Copyright © 2022 JFrog Ltd.