We have 3 environments, and 2 Wheel Indices. It is proposed that we have a release branch which is the code for the staging and production environments.
Development | Staging | Production |
---|---|---|
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 the release branch of ukrdc-webapi and the ukrdc-services in 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 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 to the release branch | ||
When the code is merged from master into relesae, the wheel file from ukrdc-services[release] is marked as 10.8.5RC1, which is built and deployed to the release index. | ||
When the 10.8.5RC1 ukrdc-services wheel has been successfully tested, the wheel file is marked and deployed as 10.8.5 on the dev-pi release index. | ||
The ukrdc-webapi requirements.txt entry for ukrdc-services is updated to 10.8.5 | ||
The production server is updated with the new code on the release branch. |