Blubber/Pipeline
In the Deployment pipeline Jenkins will handle building Docker images from Blubberfile specifications. This is configured by convention: Jenkins expects to find a Blubberfile in .pipeline/blubber.yaml
at the root of your repository. In that Blubberfile it expects to find, at minimum, two variants (1) test
and (2)production
.
When a patchset is proposed in Gerrit for your repository, Jenkins will build a Docker image based on your test
variant and run a container based on that image. Jenkins will report back to Gerrit based on the whether the entrypoint
of the that container exited cleanly (success) or not (failure).
When a patchset is merged to your repository on Gerrit, Jenkins will, again, build and execute your test
variant. If that succeeds Jenkins will build a Docker image based on your production
variant and push it into the Wikimedia Docker Registry.
When you push a tag to your repository on Gerrit, Jenkins will, once again, build and execute your test
variant. If that succeeds, Jenkins builds a Docker image based on your production
Blubber variant, tags it with the tag you pushed and pushes that to the Wikimedia Docker Registry.