Artifact shipper for Azure DevOps
GimletD assumes all release focused tasks and the management of the GitOps repository. These responsibilities used to be part of CI pipelines, therefor GimletD needs to break those out from CI. It achieves it by introducing a new concept, the release artifact. It serves as the means to detach release workflows from CI.
With GimletD instead of releasing, CI generates a release artifact for each releasable version of the application which will be released by GimletD. See the whole flow on the Concepts page.
The artifact is a large JSON object that contains all metadata that can be later used for releasing and auditing. But it is quite cumbersome to collect all metadata from CI pipelines with a series of Gimlet CLI calls:
gimlet artifact create to create an initial JSON file with the git version information gimlet artifact add to add fields like CI job url docker image name gimlet environment manifests environment variables gimlet artifact push to ship it to GimletD
This series of steps is best packaged together in a CI plugin.
One such plugin already exists for CircleCI (https://github.com/gimlet-io/circleci-orb) and Github Actions (#11). The task is to make one for Azure Devops.