cht-core
cht-core copied to clipboard
Add additional automation to the release process
Describe the issue Our current release process contains a number of manual steps that are very time consuming and error prone. We should automate as many of these steps as possible to reduce manual errors, reduce engineering time wasted on the release process, and improve the speed of the release process. All of this will be very helpful in increasing our release cadence.
Describe the improvement you'd like
- [x] Automatically verify that all commits in the release have an issue/PR included in the Milestone - https://github.com/medic/cht-core/pull/8989
- [ ] Improve handling of the Scalability Test results (many core eng do not have access to the S3 bucket). We could automatically open a PR to add the results into
tests/scalability/previous_results
. - [ ] Updating the demo instance and pushing the latest config should be something that can be done automatically in a GitHub Action (triggered by the release build).
Another thought I had based on https://github.com/medic/cht-core/pull/8989 is that the commit milestone validation logic could also be included in a CI workflow job for all PRs. So, basically, when you open a PR, it will check the PR, any linked issues, and your PR title to see if there is a milestone configured. If not, the CI will fail for the PR.
@jkuester An alternative approach would be more like what cht-conf does which does not use milestones at all. Instead it generates the release notes from the commits and adds a comment to all issues with the release version. As we tend towards smaller and smaller releases I think this is the direction we'll ultimately go in. If that's the case the validation we need is to enforce the PR title and/or commit message complies with the common format so we can parse it programmatically.
Absolutely! FTR, we implemented a CI check for PR titles in watchdog using commitlint
that works well! Would be a good place to start when looking to do something similar in cht-core, etc.