We have 3 environments, and 2 Wheel Indices. It 3 Wheel Indices - dev, staging and release. Currently, we do not use the staging index.
Currently, we update the dev wheel index every time we do a commit on ukrdc-services code. Neither dev or staging are installed until the script is run.
Promotion is done to release via a script in bamboo.
After a conversation with Rapolas, it is proposed that we have a release branch which is the code for the staging and production environments.
Development | Staging | ProductionLive |
---|---|---|
Code development is done on the Master branch by developers doing fixes on branches from Master and their subsequent code merged to master. | Staging uses will use the release branch of ukrdc-webapi and the ukrdc-services pinned in the requirements.txt. Say, in this case 10.8.4 | At the start of the cycle, the deployed code of ukrdc-webapi on production LIVE has the ukrdc-services module pinned to 10.8.4. |
Once a point is reached where code is to be released, a tag on the Master branch is made and the tag merged the point has come to release, the ukrdc/services/__init__.py version is bumped to a release candidate version - in this case 10.8.5.RC1. | ||
Tag the Master branch and merge the tag to the release branch | ||
When the code is merged from master into relesae, the wheel file from ukrdc-services[release] is marked asthe release branch, the build process will build and upload the 10.8.5RC1 , which is built and deployed to the release indexto the devpi RELEASE index. | ||
If bugs are found in the release candidate, these are fixed on the release branch, and the changes migrated back in master. | ||
When the 10.8.5RC1 ukrdc-services wheel has been successfully tested, the wheel file is marked and deployed as the version number on the release branch will be changed to 10.8.5 on the dev-pi release index.The ukrdc-webapi , the requirements.txt entry for on ukrdc-services is webapi[release] updated to 10.8.5; | ||
The production wheel file will be built as 10.8.5 and loaded up to the dev-pi release index. | ||
The Live server is updated with the new code on from the release branch by running the standard script. |