Automate the release process (partially)
Closed this issue · 1 comments
Project Improvement
Description
The current release process (see RELEASE.md
) is inefficient, involves pushing to main
, and "requires" updating lib/
semi-frequently.
Based on the release process I have adopted for git-tag-annotation-action, I intend to change the release process for this Action in a similar fashion. In particular, I intend to make the following changes to the release process:
- All releases must happen through a Pull Request. This Pull Request should be created automatically through a manually triggered GitHub Actions Workflow. As part of creating this Pull Request, a commit should automatically be created that takes care of the required changes described in
RELEASE.md
.- This prevents anyone ever having to push to
main
.
- This prevents anyone ever having to push to
- Upon merging, a git tag should be automatically created for the version in
package.json
. This includes updating thev3
tag. - From that git tag, a GitHub Release should be created with a corresponding Marketplace release, This would still happen manually (same as now).
- Branch protection should be enabled on
main
.
For reference, see also the git-tag-annotation-action RELEASE.md
and git-tag-annotation-action release.yml
.
Additionally, something along the lines of ericcornelissen/git-tag-annotation-action#99 can be added to prevent accidentally committing the changes in the see #549lib/
folder.
None of these changes should affect end-users.
Progress
It may make sense to backport this automation to main-v1
and main-v2
so that it takes less time to create a release for security reasons or regular features or bug fixes (for the time being). Whether or not that makes sense also depends on the EOL of the respective versions.
-
main
(#552) -
main-v2
-
main-v1
This will be closed based on the initial implementation for main
. If it turns out it makes sense to backport this for main-v1
and/or main-v2
the issue can be re-opened.
If there's any suggestion for improving the existing process, feel free to leave a comment here or open a new issue.