Go to file
R. Tyler Croy ed89a29035
properly format the json block
2018-01-04 18:03:05 -08:00
example Rely on system configured environment variables 2018-01-03 20:54:19 -08:00
resources/io/codevalet/externalartifacts Add a nice little bash script for using Curl to push an artifact to Azure 2018-01-03 19:28:04 -08:00
src Begin stubbing out the shared library. 2018-01-03 17:39:38 -08:00
t/base Add support for testing some of the primitive shell scripts we will need 2018-01-03 18:00:49 -08:00
vars Reduced escaping and use multiline 2018-01-04 13:57:53 -08:00
.gitignore Add support for testing some of the primitive shell scripts we will need 2018-01-03 18:00:49 -08:00
LICENSE Initial commit 2018-01-03 17:31:10 -08:00
Makefile Add an example Jenkinsfile which I can load into Jenkins 2018-01-03 19:29:29 -08:00
README.adoc properly format the json block 2018-01-04 18:03:05 -08:00
credentials.png Add some images for explanation 2018-01-03 21:01:00 -08:00
environment-variables.png Add some images for explanation 2018-01-03 21:01:00 -08:00
global-pipeline-libraries.png Add some images for explanation 2018-01-03 21:01:00 -08:00

README.adoc

<html lang="en"> <head> </head>

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.

</html>