medic / cht-core

The CHT Core Framework makes it faster to build responsive, offline-first digital health apps that equip health workers to provide better care in their communities. It is a central resource of the Community Health Toolkit.
https://communityhealthtoolkit.org
GNU Affero General Public License v3.0
439 stars 211 forks source link

Add additional automation to the release process #8987

Open jkuester opened 6 months ago

jkuester commented 6 months ago

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

jkuester commented 5 months ago

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.

garethbowen commented 5 months ago

@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.

jkuester commented 5 months ago

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.