As part of my CI process, I have a job that looks something like this:
release: stage: package # Create a big tarfile of the release script: - apt-get update -qq && apt-get install -qq tar - cd all-my-stuff/ && tar zcvf ../my-stuff.tar.gz * artifacts: expire_in: never paths: - '*.tar.gz'
The idea with this is that, once I tag a release, I can grab this tarball artifact using the API:
https://example.com/api/v4/projects/<url-encoded namespaced job>/jobs/artifacts/<tag>/raw/my-stuff.tar.gz?job=release.
That works perfectly as long as the entire CI pipeline succeeds. However, I’d like to be able to access that particular artifact regardless of the outcome of the entire pipeline. If that job succeeds but the greater pipeline happens to fail for some unrelated reason, that URL gives me a 404. I tried adding a
when: always to the
artifacts object, but that didn’t seem to help. Is there a way to accomplish this?
To be clear, I can always navigate to the job in the web interface and download the artifacts, regardless of the pipeline status. It just doesn’t seem to be available via the API if the greater pipeline fails.