A Pipeline Shared Library to support external artifacts in Azure
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
resources/io/codevalet/externalartifacts
src
t/base
vars
.gitignore
LICENSE
Makefile
README.adoc
credentials.png
environment-variables.png
global-pipeline-libraries.png

README.adoc

External Artifacts

This Pipeline Shared Library performs an override of the built-in archive and archiveArtifacts steps to provide external artifact storage.

Configuring

The main entrypoint for this library is to load it as a Global Pipeline Library:

Configuring the Pipeline Library

Environment Variables

The following environment variables should be set in JENKINS_HOME/configure:

  • AZURE_STORAGE_ACCOUNT

  • AZURE_CONTAINER_NAME

Configuring Environent Variables

Credentials

A "Secret Text" credential should be defined with the ID azure-access-key, and contain an Azure Storage Account "Access Key."

Configuring Credentials

Notes for the future

Artifact Pointer

It might make sense to implement an artifact pointer (via a plugin extending this extension point) which avoids the need for an HTTP redirect.

An artifact pointer could be described as a JSON file, e.g.:

timestamps.txt.jartptr
{
    "fingerprint" : "<md5sum of original file>",
    "uri" : "https://some/external/uri",
    "name" : "timestamps.txt",
    "attributes" : {
        "bytes" : 309,
        "ctime" : "2018-01-04 17:00:00Z"
    }
}

Jenkins could then identify this file as such, and link a timestamps.txt in the web UI directly to the uri attribute defined in the .jartptr manifest.