Skip to content

Artifactory resource for Concourse pipelines with semver and evr support for versioning schema (Based on Marcelo Borges repo at https://github.com/mborges-pivotal/artifactory-resource )

Notifications You must be signed in to change notification settings

romerojunior/artifactory-resource

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Artifactory Resource

Deploys and retrieves artifacts from a JFrog Artifactory server for a Concourse pipeline.

To define an Artifactory resource for a Concourse pipeline:

resource_types:
- name: artifactory
  type: docker-image
  source:
    repository: pivotalservices/artifactory-resource

resources:
- name: file-repository
  type: artifactory
  source:
    endpoint: http://ARTIFACTORY-HOST-NAME-GOES-HERE:8081/artifactory
    repository: "/repository-name/sub-folder"
    version_schema: semver
    regex: "myapp-(?<version>.*).txt"
    username: YOUR-ARTIFACTORY-USERNAME
    password: YOUR-ARTIFACTORY-PASSWORD
    skip_ssl_verification: true

Source Configuration

  • endpoint: Required. The Artifactory REST API endpoint. eg. http://YOUR-HOST_NAME:8081/artifactory.
  • repository: Required. The Artifactory repository which includes any folder path, must contain a leading '/'. eg. /generic/product/pcf
  • regex: Required. Regular expression used to extract artifact version, must contain 'version' group. E.g. myapp-(?<version>.*).tar.gz
  • username: Optional. Username for HTTP(S) auth when accessing an authenticated repository
  • password: Optional. Password for HTTP(S) auth when accessing an authenticated repository
  • skip_ssl_verification: Optional. Skip ssl verification when connecting to Artifactory's APIs. Values: true or false(default).
  • version_schema: Optional. Specify the versioning schema. Values: erv or semver (default).

Version Schema

  • evr: Also known as "[e:]v-r" (e = epoch (optional), v = version, r = release), is a common notation used by package managers.
  • semver: Also known as "semantic versioning", follows the notation MAJOR.MINOR.PATCH.

Parameter Configuration

  • file: Required for put The file to upload to Artifactory
  • regex: Optional overrides the source regex
  • folder: Optional. appended to the repository in source - must start with forward slash /

Saving/deploying an artifact to Artifactory in a pipeline job:

  jobs:
  - name: build-and-save-to-artifactory
    plan:
    - task: build-a-file
      config:
        platform: linux
        image_resource:
          type: docker-image
          source:
            repository: ubuntu
        outputs:
        - name: build
        run:
          path: sh
          args:
          - -exc
          - |
            export DATESTRING=$(date +"%Y%m%d")
            echo "This is my file" > ./build/myapp-$(date +"%Y%m%d%H%S").txt
            find .
    - put: file-repository
      params: { file: ./build/myapp-*.txt }

Retrieving an artifact from Artifactory in a pipeline job:

jobs:
- name: trigger-when-new-file-is-added-to-artifactory
  plan:
  - get: file-repository
    trigger: true
  - task: use-new-file
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: ubuntu
      inputs:
      - name: file-repository
      run:
        path: echo
        args:
        - "Use file(s) from ./file-repository here..."

See pipeline.yml for an example of a full pipeline definition file.

Resource behavior

check: ...

Relies on the regex to retrieve artifact versions

in: ...

Same as check, but retrieves the artifact based on the provided version

out: Deploy to a repository.

Deploys the artifact.

Parameters

  • file: Required. The path to the artifact to deploy.

Credits

This resource was originally based on the artifactory resource work of mborges.

About

Artifactory resource for Concourse pipelines with semver and evr support for versioning schema (Based on Marcelo Borges repo at https://github.com/mborges-pivotal/artifactory-resource )

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%