These are generic docker image build and upload jobs which use the recently added roles of the same names. With the new pass-to-parent feature, child jobs can add their own credentials to these jobs. Change-Id: I669a9e6616a031837adab8c5c5806431fcca2150
2.8 KiB
This is one of a collection of jobs which are designed to work together to build, upload, and promote docker images in a gating context:
build-docker-image: Build the images.upload-docker-image: Build and stage the images on dockerhub.promote-docker-image: Promote previously uploaded images.
The build-docker-image job is designed to be used in
a check pipeline and simply builds the
images to verify that the build functions.
The upload-docker-image job builds and uploads the
images to Docker Hub, but only with a single tag corresponding to the
change ID. This job is designed in a gate
pipeline so that the build produced by the gate is staged and can later
be promoted to production if the change is successful.
The promote-docker-image job is designed to be used
in a promote pipeline. It requires no
nodes and runs very quickly on the Zuul executor. It simply re-tags a
previously uploaded image for a change with whatever tags are supplied
by build-docker-image.docker_images.tags. It also
removes the change ID tag from the repository in Docker Hub, and removes
any similar change ID tags more than 24 hours old. This keeps the
repository tidy in the case that gated changes fail to merge after
uploading their staged images.
They all accept the same input data, principally a list of dictionaries representing the images to build. YAML anchors can be used to supply the same data to all three jobs.
Job Variables