This Pipeline Shared Library
performs an
override
of the built-in archive
and archiveArtifacts
steps to provide external
artifact storage.
The main entrypoint for this library is to load it as a Global Pipeline Library:
The following environment variables should be set in JENKINS_HOME/configure:
-
AZURE_STORAGE_ACCOUNT
-
AZURE_CONTAINER_NAME
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.