The release flow on Plone projects is split in 2 Jenkins jobs:
- A job that runs on every commit on master and creates a production ready GitHub release and tag
- A job that runs on every new tag (including the one created in the first job):
- A new Docker image is built and released automatically on DockerHub with the release tag.
- The automatic release is started by creating a Pull Request from
develop
tomaster
. The pull request status checks correlated to the branch and PR Jenkins jobs need to be processed successfully. 1 review from a github user with rights is mandatory. - It runs on every commit on
master
branch, which is protected from direct commits, only allowing pull request merge commits. - The automatic release is done by Jenkins. The status of the release job can be seen both in the
README.md
badges and the green check/red cross/yellow circle near the last commit information. If you click on the icon, you will have the list of checks that were run. Thecontinuous-integration/jenkins/branch
link goes to the Jenkins job execution webpage. - Automated release scripts are located in the
eeacms/gitflow
docker image.
We use Docker, Rancher and Jenkins to deploy this application in production.