Artifactory plugin

13 minute readExtensibilityDeveloper productivity

The CloudBees CD/RO EC-Artifactory plugin integrates with JFrog Artifactory providing a single place for teams to manage all their binary artifacts efficiently. For more information about JFrog Artifactory please refer to Artifactory documentation https://www.jfrog.com/open-source/#resources-projects.

The plugin integration between CloudBees CD/RO and Artifactory makes it easy to model applications in CloudBees CD/RO, referencing artifacts stored in Artifactory, with support for numerous repository layouts. When a request for deployment is made in CloudBees CD/RO, the platform seamlessly retrieves the relevant artifacts from Artifactory as part of the deploy process. Users have the flexibility to

  • Reference specific versions in Artifactory.

  • Configure the deployment to always pick up the latest version.

  • Dynamically determine which versions to deploy at runtime.

This flexibility enables different use cases, such as using the latest version to schedule automatic deployments of nightly build outputs to QA environments every morning.

In CloudBees CD/RO, versions are stored in the environment inventory, recording the exact versions of each artifact that has been deployed to an environment, so you could easily track and audit what is deployed where.  The SmartDeploy feature in CloudBees CD/RO compares that inventory with the artifact versions being deployed, and only deploys any new artifact versions to that specific environment for efficient and safe deployments. CloudBees CD/RO automatically captures a version of the entire application, including individual artifact versions pulled from Artifactory, in a snapshot.  Using a snapshot in deployments guarantees consistency across environments, so you could have the same components and configuration in the lower environment, as well as in production. These tight integrations of Artifactory versions feeding into model-driven processes and capabilities in CloudBees CD/RO provide visibility, reliable deployments and ensure repeatability and fidelity across all the environments and processes throughout the pipeline.  This ensures that teams can deploy to production with confidence.

Plugin Version 1.7.1.2022072140

Revised on July 21, 2022

Supported versions

The plugin has been tested with JFrog Artifactory version 5.x. Since the plugin integrates with Artifactory using a Rest API, Artifactory versions that are compatible with the 5.x Rest API are expected to work, although not tested. In addition, since some features are available only in the professional version of Artifactory, it is expected that exercising those features in the plugin require a professional version of Artifactory.

Creating plugin configurations

Plugin configurations are sets of parameters that apply across some or all of the plugin procedure. They reduce repetition of common values, create predefined parameter sets for end users, and securely store credentials where needed. Each configuration is given a unique name that is entered in designated parameters on procedures that use them.

To create plugin configurations in CloudBees CD/RO, complete the following steps:

  1. Navigate to Administration  Plugins to open the Plugin Manager.

  2. Find the EC-Artifactory row.

  3. Select Configure to open the EC-Artifactory Configurations page.

  4. Select Create Configuration.

  5. To enable CloudBees CD/RO server to communicate with the API, enter the following information.

Procedures

Retrieve artifact from artifactory

Retrieves the exact or the latest version of the artifact from Artifactory instance. Supports NuGet, NPM, Maven, PHP and Generic repositories.

Parameter Description

Repository package type

Type of the repository. For now NuGet, NPM, PHP, Maven and Generic are supported.

Configuration

Previously defined configuration name. For example, config.

Repository key

Repository key (not repository name). For example, nuget-local, libs-snapshot-local.

Organization Path

Represents the Organization field where the levels are separated by path separators (/), à la Maven. For example, org/slf4j. Required, if the path part is mandatory for the layout. (For example, in the layout [orgPath]/[module].[ext], the organization path is mandatory and in the layout ([orgPath])/[module], it is not mandatory.)

Module

A sequence of literals that identifies the artifact’s module, basically, the artifact’s name.

Version

Exact version to be downloaded or latest version flag (if latest version retrieval logic is available for the repository). For NuGet, NPM, PHP and Generic repositories this feature requires Artifactory Pro.

File Integration Revision

A sequence of literals that identifies the integration revision part in the artifact’s file name, excluding the base revision.

Folder Integration Revision

A sequence of literals that identifies the integration revision part used in folder names in the artifact’s path, excluding the base revision.

Type

A sequence of literals that identifies the artifact’s type. This is typically used when the artifact’s extension cannot be reused as the artifact’s type.

Extension

A sequence of literals that identifies the artifact’s extension. For example, nupkg. Required, if the path part is mandatory for the layout.

Classifier

A sequence of literals that identifies the artifact’s classifier.

Retrieve to Directory

Download the artifact version to a specific directory. If not defined, the artifact is downloaded into the current directory. If the specified directory does not exist, it is created. This path may be absolute or relative. For example, /tmp/my_artifact or artifact_name.

Overwrite?

If selected, the existing package is overwritten.

Uncompress and Extract?

If selected, the retrieved package is extracted into the specified directory. Available for NuGet, NPM and PHP Composer. If the Retrieve to Directory parameter is not set, the package is extracted into the current workspace. A new folder is created for the artifact, with the name eflow-<artifact>-<version>. For example, an NPM artifact appears like this:

- eflow-http-1.0.0/package/index.js (/opt/electriccloud/electriccommander/workspace/job_40369_20171129040418/package/index.js)
- eflow-http-1.0.0/package/package.json (/opt/electriccloud/electriccommander/workspace/job_40369_20171129040418/package/package.json)

Where http is the name of the package and 1.0.0 is the version.

For NuGet, the extracted package files may appear like this:

- eflow-Json-1.0.0/LICENSE.md(/opt/electriccloud/electriccommander/workspace/job_40371_20171129040755/LICENSE.md)
- eflow-Json-1.0.0/Newtonsoft.Json.nuspec(/opt/electriccloud/electriccommander/workspace/job_40371_20171129040755/Newtonsoft.Json.nuspec)
- eflow-Json-1.0.0/[Content_Types].xml(/opt/electriccloud/electriccommander/workspace/job_40371_20171129040755/[Content_Types].xml)
- eflow-Json-1.0.0/lib/net20/Newtonsoft.Json.dll(/opt/electriccloud/electriccommander/workspace/job_40371_20171129040755/lib/net20/Newtonsoft.Json.dll)

Retrieved Artifact Location Property

The name or property sheet path used by the step to create a property sheet. This property sheet stores information about the retrieved artifact version, including its location in the file system.

Properties are saved under <retrievedArtifactLocationProperty>/<artifactName>:

    url # url of the downloaded artifact
    version # artifact version
    filename # filename, relative
    fullFilename #filename, absolute
    Also, all the artifact's properties will be here
    extractionPath # path to the extraction folder (in case Uncompress and Extract were selected)
    fullExtractiobnPath # absolute path to the extraction folder

If an artifact has some properties coming from Artifactory, they are also saved under this property sheet.

Component definition

The EC-Artifactory plugin can be used to define a component in CloudBees CD/RO. To create a component, select EC-Artifactory in the dropdown for Content Location in the component definition.

Samples

NuGet

In Artifactory, the artifact appears like this:

Where com/company is the organization and artifact is the name of the module.

Procedure configuration:

After job is finished, the following summary appears:

Job logs:

Maven

Maven artifact in Artifactory:

Procedure configuration:

Finished procedure:

Job logs:

Using plugin EC-Artifactory-1.0.0.0
Got parameter "artifact" with value "bookstore"
Got parameter "classifier" with value ""
Got parameter "config" with value "config"
Got parameter "destination" with value ""
Got parameter "extension" with value ".war"
Got parameter "extract" with value "0"
Got parameter "fileItegRev" with value ""
Got parameter "folderItegRev" with value "SNAPSHOT"
Got parameter "latestVersion" with value "1"
Got parameter "org" with value ""
Got parameter "orgPath" with value "hello"
Got parameter "overwrite" with value "0"
Got parameter "repoType" with value "Maven"
Got parameter "repository" with value "libs-snapshot-local"
Got parameter "repositoryPath" with value ""
Got parameter "resultPropertySheet" with value "/myJob/retrievedArtifactVersions/"
Got parameter "type" with value ""
Got parameter "useRepositoryLayout" with value "1"
Got parameter "version" with value ""
Artifact path is /hello/bookstore/0.0.1-SNAPSHOT/bookstore-0.0.1-20170705.104709-2.war
Artifact URL: http://10.200.1.102:8081/artifactory/libs-snapshot-local//hello/bookstore/0.0.1-SNAPSHOT/bookstore-0.0.1-20170705.104709-2.war
Downloading http://10.200.1.102:8081/artifactory/libs-snapshot-local//hello/bookstore/0.0.1-SNAPSHOT/bookstore-0.0.1-20170705.104709-2.war into the job workspace
Set property "/myJob/retrievedArtifactVersions/bookstore/fullFilename" to value "/opt/electriccloud/electriccommander/workspace/job_37132_20171121022959/bookstore-0.0.1-20170705.104709-2.war"
Set property "/myJob/retrievedArtifactVersions/bookstore/filename" to value "bookstore-0.0.1-20170705.104709-2.war"
Set property "/myJob/retrievedArtifactVersions/bookstore/version" to value "0.0.1-SNAPSHOT"
Set property "/myJob/retrievedArtifactVersions/bookstore/url" to value "http://10.200.1.102:8081/artifactory/libs-snapshot-local//hello/bookstore/0.0.1-SNAPSHOT/bookstore-0.0.1-20170705.104709-2.war"
Set property "/myJob/retrievedArtifactVersions/bookstore/snapshotVersion" to value "0.0.1-20170705.104709-2"

NPM

In Artifactory, the artifact appears as follows:

Procedure configuration:

After the job is complete, the following summary appears:

Job logs:

Using plugin EC-Artifactory-1.0.0.0
Got parameter "artifact" with value "test_package"
Got parameter "classifier" with value ""
Got parameter "config" with value "config"
Got parameter "destination" with value ""
Got parameter "extension" with value ""
Got parameter "extract" with value "1"
Got parameter "fileItegRev" with value ""
Got parameter "folderItegRev" with value ""
Got parameter "latestVersion" with value "1"
Got parameter "org" with value ""
Got parameter "orgPath" with value "myorg"
Got parameter "overwrite" with value "1"
Got parameter "repoType" with value "NPM"
Got parameter "repository" with value "npm-demo"
Got parameter "repositoryPath" with value ""
Got parameter "resultPropertySheet" with value "/myJob/retrievedArtifactVersions/"
Got parameter "type" with value ""
Got parameter "useRepositoryLayout" with value "1"
Got parameter "version" with value ""
Latest version for myorg:test_package is 1.0.0
Artifact path is myorg/test_package/test_package-1.0.0.tgz
Artifact URL: http://10.200.1.102:8081/artifactory/npm-demo/myorg/test_package/test_package-1.0.0.tgz
Downloading http://10.200.1.102:8081/artifactory/npm-demo/myorg/test_package/test_package-1.0.0.tgz into the job workspace
Extracting test_package-1.0.0.tgz
Extraction path: "test_package"
Files extracted:
  - index.js
  - package.json
Artifact properties:
{
   "artifactory.licenses" : [
      "ISC"
   ],
   "npm.version" : [
      "1.0.0"
   ],
   "npm.name" : [
      "test_package"
   ]
}


Set property "/myJob/retrievedArtifactVersions/test_package/npm.version" to value "1.0.0"
Set property "/myJob/retrievedArtifactVersions/test_package/version" to value "1.0.0"
Set property "/myJob/retrievedArtifactVersions/test_package/artifactory.licenses" to value "ISC"
Set property "/myJob/retrievedArtifactVersions/test_package/fullFilename" to value "/opt/electriccloud/electriccommander/workspace/job_37171_20171121065017/test_package-1.0.0.tgz"
Set property "/myJob/retrievedArtifactVersions/test_package/filename" to value "test_package-1.0.0.tgz"
Set property "/myJob/retrievedArtifactVersions/test_package/url" to value "http://10.200.1.102:8081/artifactory/npm-demo/myorg/test_package/test_package-1.0.0.tgz"
Set property "/myJob/retrievedArtifactVersions/test_package/npm.name" to value "test_package"

Generic

In Artifactory, the artifact appear like this:

Plugin configuration:

Procedure configuration:

After job is finished, the following summary appears:

Job logs:

Got parameter "artifact" with value "module"
Got parameter "classifier" with value ""
Got parameter "config" with value "CustomLayout"
Got parameter "destination" with value ""
Got parameter "extension" with value "vsix"
Got parameter "extract" with value "0"
Got parameter "fileItegRev" with value ""
Got parameter "folderItegRev" with value ""
Got parameter "latestVersion" with value "1"
Got parameter "org" with value "myorg"
Got parameter "orgPath" with value "myorg"
Got parameter "overwrite" with value "1"
Got parameter "repoType" with value "Generic"
Got parameter "repository" with value "custom-local"
Got parameter "repositoryPath" with value ""
Got parameter "resultPropertySheet" with value "/myJob/retrievedArtifactVersions"
Got parameter "type" with value ""
Got parameter "useRepositoryLayout" with value "1"
Got parameter "version" with value ""
Repository layout is "[org]/[module]/[baseRev].[ext]"
Latest version for myorg:module is 10.0.1
Artifact path is myorg/module/10.0.1.vsix
Artifact URL: http://10.200.1.102:8081/artifactory/custom-local/myorg/module/10.0.1.vsix
Downloading http://10.200.1.102:8081/artifactory/custom-local/myorg/module/10.0.1.vsix into the job workspace
Artifact has no properties
Set property "/myJob/retrievedArtifactVersions/module/fullFilename" to value "/opt/electriccloud/electriccommander/workspace/job_39881_20171128060650/10.0.1.vsix"
Set property "/myJob/retrievedArtifactVersions/module/filename" to value "10.0.1.vsix"
Set property "/myJob/retrievedArtifactVersions/module/version" to value "10.0.1"
Set property "/myJob/retrievedArtifactVersions/module/url" to value "http://10.200.1.102:8081/artifactory/custom-local/myorg/module/10.0.1.vsix"

PHP composer

In Artifactory, the artifact appear like this:

Procedure configuration:

After the job is finished, the following summary appears:

Job logs:

Got parameter "artifact" with value "laravel-messenger"
Got parameter "classifier" with value ""
Got parameter "config" with value "config"
Got parameter "destination" with value ""
Got parameter "extension" with value "zip"
Got parameter "extract" with value "0"
Got parameter "fileItegRev" with value ""
Got parameter "folderItegRev" with value ""
Got parameter "latestVersion" with value "1"
Got parameter "org" with value ""
Got parameter "orgPath" with value "cmgmyr"
Got parameter "overwrite" with value "0"
Got parameter "repoType" with value "PHP"
Got parameter "repository" with value "php-local"
Got parameter "repositoryPath" with value ""
Got parameter "resultPropertySheet" with value "/myJob/retrievedArtifactVersions"
Got parameter "type" with value ""
Got parameter "useRepositoryLayout" with value "1"
Got parameter "version" with value ""
Repository layout is "[orgPath]/[module]/[module]-[baseRev](-[fileItegRev]).[ext]"
Latest version for cmgmyr:laravel-messenger is 1.0.0
Artifact path is cmgmyr/laravel-messenger/laravel-messenger-1.0.0.zip
Artifact URL: http://10.200.1.102:8081/artifactory/php-local/cmgmyr/laravel-messenger/laravel-messenger-1.0.0.zip
Downloading http://10.200.1.102:8081/artifactory/php-local/cmgmyr/laravel-messenger/laravel-messenger-1.0.0.zip into the job workspace
Artifact properties:
{
   "artifactory.licenses" : [
      "MIT"
   ],
   "composer.keywords" : [
      "laravel",
      "messenger",
      "messaging",
      "user messaging"
   ],
   "composer.name" : [
      "cmgmyr/messenger"
   ],
   "composer.description" : [
      "Simple user messaging tool for Laravel"
   ],
   "composer.author" : [
      "Chris Gmyr"
   ],
   "composer.version" : [
      "1.0.0"
   ],
   "composer.type" : [
      "library"
   ]
}

Set property "/myJob/retrievedArtifactVersions/laravel-messenger/version" to value "1.0.0"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.author" to value "Chris Gmyr"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.description" to value "Simple user messaging tool for Laravel"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.name" to value "cmgmyr/messenger"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.type" to value "library"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/artifactory.licenses" to value "MIT"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/fullFilename" to value "/opt/electriccloud/electriccommander/workspace/job_39882_20171128063554/laravel-messenger-1.0.0.zip"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.keywords" to value "laravel, messenger, messaging, user messaging"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/filename" to value "laravel-messenger-1.0.0.zip"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/url" to value "http://10.200.1.102:8081/artifactory/php-local/cmgmyr/laravel-messenger/laravel-messenger-1.0.0.zip"
Set property "/myJob/retrievedArtifactVersions/laravel-messenger/composer.version" to value "1.0.0"

Get latest artifact version

Performs a GAVC search in Artifactory for the specified artifact and saves the latest version to a property.

This procedure requires an Artifactory Pro license.
Parameter Description

Configuration

Previously defined configuration name. For example, config.

Repository Package Type

Type of the repository. For now NuGet, NPM, PHP, Maven and Generic are supported.

Repository Key

Repository key. For example, nuget-local, libs-snapshot-local.

Organization Path

Represents the Organization field where the levels are separated by path separators (/), à la Maven. For example: org/slf4j. Required, if the path part is mandatory for the layout. (For example, in the layout [orgPath]/[module].[ext] organization path is mandatory and in the layout ([orgPath])/[module] is it not mandatory.)

Artifact

A sequence of literals that identifies the artifact’s module, basically, the artifact’s name.

Classifier

A sequence of literals that identifies the artifact’s classifier. Required if Repository Package Type is Maven

Result Property

Name or the property where the latest version is saved. The default is /myJob/ArtifactVersion.

Procedure interface and example usage:

Procedure logs for successful run:

Publish artifact to Artifactory

Publishes a single artifact to the Artifactory instance. It supports the following Repository Package Types: NuGet, NPM, Maven, PHP, and Generic.

Parameter Description

Configuration

Previously defined configuration name. For example, config.

Repository Package Type

Repository Package Type. Choose from one of these types: NuGet, NPM, PHP, Maven and Generic.

Repository Key

Repository key. For example, nuget-local or libs-snapshot-local.

Use Repository Layout

Select this if you want to use custom repository layouts.

Organization Path

Represents the Organization Path separated by / depending on the layout used. For example, the layout [orgPath]/[module].[ext] expects an organization path whereas the layout ([orgPath])/[module] does not. For example, org/slf4j.

This parameter is required if you do not use custom repository layouts.

Module

A sequence of literals that identifies the artifact’s module. For example, slf4j-api.

This parameter is required if you do not use custom repository layouts.

Base Revision

A sequence of literals that identifies the base revision part of the artifact version, excluding any integration information. For example, 1.5.10, or in the case of an integration revision 1.2-SNAPSHOT, the base revision is 1.2.

This parameter is required if you do not use custom repository layouts.

Folder Integration Revision

A sequence of literals that identifies the integration revision part used in folder names in the artifact’s path, excluding the base revision. For example, in the case of an integration revision 1.2-SNAPSHOT the folder integration revision is SNAPSHOT.

This parameter is required if you do not use custom repository layouts.

File Integration Revision

A sequence of literals that identifies the integration revision part in the artifact’s file name, excluding the base revision. For example, in the case of an integration revision 1.2-20110202.144533-3, the file integration revision is 20110202.144533-3.

Classifier

A sequence of literals that identifies the artifact’s classifier. For example, sources.

This parameter is required if you do not use custom repository layouts.

Extension

A sequence of literals that identifies the artifact’s extension. For example, zip.

This parameter is required if you do not use custom repository layouts.

Artifact Layout

Layout path pattern used for artifact resolution and publication paths. Example: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

This parameter is required if you do not use custom repository layouts.

Artifact Tokens

Token path pattern used for artifact resolution. Tokens can consist of a combination of string literals, path separators, parentheses, punctuation characters etc.

For example, for the artifact: org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190222.112918-1-sources.jar, the tokens are: orgPath=org/jfrog/testmodule=multi1baseRev=3.7folderItegRev=SNAPSHOTfileItegRev=20190222.112918-1classifier=sourcesext=jar

This parameter is required if you do not use custom repository layouts.

Artifact Path

Path to the artifact binary on the resource file system. For example, /tmp/myartifact.zip.

Artifact Properties

Artifact properties that facilitate searching them through JFrog "Smart Searches". For more information, refer to official page.

Properties can be added in the following format:

key1=value1
key2=value2;value3;...
...
keyN=valueN

Result Property Sheet

Property sheet where procedure results should be saved. Contains a record with the following fields in JSON-format:

  • md5_checksum: The MD5 checksum of the artifact.

  • sha1_checksum: The SHA1 checksum of the artifact.

  • sha256_checksum: The SHA256 checksum of the artifact.

  • path: The local path in Artifactory.

  • url: The URL for downloading the artifact.

  • webapp_url: The URL for browsing the artifact in Artifactory.

Example:

{
    "md5_checksum":"c61b83072527864fe7171ea99b017438",
    "sha1_checksum":"b92e9d18bdb357d98c10c8074d3b9b6f63307efa",
    "sha256_checksum":"d16c4f6e565a0831c96fe0ce1a62694caba55dd5341b8d50aebf54cdf0effdbf",
    "path":"libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
    "url":"http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
    "webapp_url":"http://localhost:8081/artifactory/webapp/#/artifacts/browse/tree/General/libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
}

Artifact token layout example

Suppose you need to publish a snapshot named my_plugin-current-tests.jar per the following URL:

http://localhost:8081/artifactory/webapp/#/artifacts/browse/tree/General/libs-snapshot-local/com/electriccloud/ec-specs-plugins-core/1.5.3-SNAPSHOT/my_plugin-1.5.3-20180919.122321-1-tests.jar

You need to supply the following fields:

Field Value

Repository Key

libs-snapshot-local

Organization Path

com/electriccloud

Module

ec-specs-plugins-core

Base Revision

1.5.3

Folder Integration Revision

SNAPSHOT

File Integration Revision

20180919.122321-1

Classifier

tests

Extension

jar

Procedure interface and example usage for Generic:

Procedure logs for successful run:

Procedure interface and example usage for Maven:

Procedure logs for successful run:

Publish multiple artifacts to artifactory

Publishes one or more artifacts whose Repository Package Type is Generic to Artifactory.

Parameter Description

Configuration

Previously defined configuration name. For example, config.

Repository Key

Repository key. For example, generic-local, custom-local.

Use Repository Layout

Select this if you want to use Custom Repository Layouts.

Organization Path

Required if you do not use Custom Repository Layouts. Represents the Organization Path separated by "/" depending on the layout used. For example, the layout "[orgPath]/[module].[ext]" expects an organization path whereas the layout "([orgPath])/[module]" does not.

Example: org/slf4j

Example regex: .+?

Module

Required if you do not use Custom Repository Layouts. A sequence of literals that identifies the artifact’s module. Example: slf4j-api Example regex: [^/]+

Base Revision

Required if you do not use Custom Repository Layouts. A sequence of literals that identifies the base revision part of the artifact version, excluding any integration information.

Example: 1.5.10, or in case of an integration revision 1.2-SNAPSHOT the base revision is 1.2.

Example regex: [^/]+?

Extension

Required if you do not use Custom Repository Layouts. A sequence of literals that identifies the artifact’s extension.

Example: zip

Example regex: (?:(?!\d))[^-/]+|7z

Artifact Layout

Required if you use Custom Repository Layouts. Layout path pattern used for artifact resolution and publication paths.

Example: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

Artifact Tokens

Required if you use Custom Repository Layouts. Token path pattern used for artifact resolution. Tokens can consist of a combination of string literals, path separators, parentheses, punctuation characters etc.

Example: for the layout [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

tokens are:

orgPath=.+?module=[/]+baseRev=[/]+?folderItegRev=SNAPSHOTfileItegRev=SNAPSHOT|(?:(?:[0-9]{8}.[0-9]{6})-(?:[0-9]+))classifier=[/]+?ext=(?:(?!\d))[-/]+|7z

Artifacts Directory

Path to the artifact binary directory on the resource file system.

Example: /tmp/myartifacts

Artifact Properties

Artifact properties that facilitate searching them through JFrog "Smart Searches".

For more information, refer to the official page.

Properties can be added in the following format:

key1=value1
key2=value2;value3;...
...
keyN=valueN

Result Property Sheet

Property sheet where procedure results should be saved. Contains a list of records with following fields in JSON-format:

  • md5_checksum: The MD5 checksum of the artifact.

  • sha1_checksum: The SHA1 checksum of the artifact.

  • sha256_checksum: The SHA256 checksum of the artifact.

  • path: The local path in Artifactory.

  • url: The URL for downloading the artifact.

  • webapp_url: The URL for browsing the artifact in Artifactory.

Example:

{
    "md5_checksum":"c61b83072527864fe7171ea99b017438",
    "sha1_checksum":"b92e9d18bdb357d98c10c8074d3b9b6f63307efa",
    "sha256_checksum":"d16c4f6e565a0831c96fe0ce1a62694caba55dd5341b8d50aebf54cdf0effdbf",
    "path":"libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
    "url":"http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
    "webapp_url":"http://localhost:8081/artifactory/webapp/#/artifacts/browse/tree/General/libs-snapshot-local/org/jfrog/test/multi1/3.7-SNAPSHOT/multi1-3.7-20190218.153526-1-tests.jar",
}

Procedure interface and example usage without using the repository layout:

Procedure logs for successful run:

Procedure interface and example usage with Use Repository Layout:

Procedure logs for successful run:

Release notes

EC-Artifactory 1.7.1

  • Fixed an issue for the configuration form test connection.

  • Upgraded the Xerces library.

  • Fixed an issue with wrong field types included in the component definition.

  • Fixed an issue for impossible to use component operations in a component process.

  • Fixed an issue for the Get Latest Artifact Version procedure that was missing a dropdown for the Repository key parameter.

EC-Artifactory 1.7.0

  • Add support for new plugin configuration.

EC-Artifactory 1.6.0

  • Changed the way Generic repositories are managed.

  • Upgraded the HttpClient library to v4.5.13

  • Upgraded Apache Commons Codec library to v1.15

  • Upgraded Jackson Databind library to v2.13.2.2

EC-Artifactory 1.5.1

  • Fixed an issue when on some old setups EditConfiguration did not work properly.

EC-Artifactory 1.5.0

  • Plugin configuration has been improved to support external credentials.

EC-Artifactory 1.4.7

  • Fix reading of compressed files under Windows.

EC-Artifactory 1.4.6

  • An HTTP client was changed for the UI dropdowns to address certain security issues.

EC-Artifactory 1.4.5

  • Renamed to CloudBees CD/RO.

EC-Artifactory 1.4.4

  • GetLatestVersion procedure uses maven-metadata.xml to resolve the latest version for Maven repositories.

EC-Artifactory 1.4.3

  • Incorrect error message that sometimes appeared during configuration creation was removed.

EC-Artifactory 1.4.2

  • Renaming to "CloudBees"

  • Fixed help link for the "Retrieve Artifact from Artifactory" procedure.

EC-Artifactory 1.4.1

  • Use output parameters only for versions >= 8.3.

EC-Artifactory 1.4.0

The following new procedures have been introduced to support publishing 1 or more artifacts to Artifactory.

  • Publish Artifact to Artifactory

  • Publish Multiple Artifacts to Artifactory

EC-Artifactory 1.3.1

  • Added metadata that is required for 9.0 release.

  • The plugin icon has been updated.

EC-Artifactory 1.3.0

  • Plugin promotion time has been improved.

  • A new Get Latest Artifact Version procedure was introduced.

EC-Artifactory 1.2.1

  • Fixed the Retrieval logic for snapshots in the Retrieve Artifact from Artifactory procedure to use both the extension and the build number, when comparing with Maven metadata.

EC-Artifactory 1.2.0

  • Support for HTTP Proxy has been provided. Customers who use HTTP proxy can specify Proxy Information (Host, Port and Credentials at the configuration level) and all procedures use the Proxy as second credentials for authentication.

EC-Artifactory 1.1.3

  • Improved inline plugin configurations management.

EC-Artifactory 1.1.2

  • Enabled the plugin for managing the plugin configurations in-line when defining an application process step or a pipeline stage task.

  • Hyphen in qualifier was fixed. For example, for a version like 1.2-H1-SNAPSHOT.

EC-Artifactory 1.1.1

  • Fixed an access control list (ACL) problem that occurred during plugin upgrade.

EC-Artifactory 1.1.0

  • Repository package types added: PHP, Generic.

  • Access token support: access token can be used instead of password in the plugin configuration.

  • Extraction logic was changed: now the artifact is extracted into a directory named eflow-<artifact>-<version>.

EC-Artifactory 1.0.0 (beta)

  • Supported repositories: Maven, NuGet, NPM.