Add release CI template
Previously, this ticket aimed to implement a CI release template based on the semantic-release tool. However, the initial use case for the template is the Digital Admissions project and the semantic-release
tool doesn't fit their desired workflow very well. Therefore, this issue has been converted into a more general CI release template POC using the release-it tool instead, initially trying to automate the Digital Admissions team's current workflow.
For this POC the template should ideally:
- Play nicely with Auto-DevOps.
- Have two modes, toggled by a variable:
- The default mode should be a basic job which runs on any merge to the default branch and simply executes
release-it
using the config found in a.release-it.json
file in the repo root.- This enables comparable functionality to the
semantic-release
tool.
- This enables comparable functionality to the
- The second mode should implement a similar workflow to the release-please tool which was developed by the googleapis team. In this workflow, when changes land on the default branch
release-it
would generate/update a draft MR containing changes to the changelog, package.json/pyproject.toml files etc. Then, when the team are ready to make a new release they simply merge this MR. When the MR is mergedrelease-it
will then perform the tagging and create the GitLab release.- This mode of operation will hopefully fit the Digital Admissions workflow nicely as this is essentially how they currently work, queuing up unreleased changes ready for release, albeit in a very manual fashion currently.
- The reason we can't simply use the
release-please
tool is that it doesn't currently support GitLab.
- The default mode should be a basic job which runs on any merge to the default branch and simply executes
Edited by Ryan Kowalewski