ericcornelissen/svgo-action

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:

  1. 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.
  2. Upon merging, a git tag should be automatically created for the version in package.json. This includes updating the v3 tag.
  3. From that git tag, a GitHub Release should be created with a corresponding Marketplace release, This would still happen manually (same as now).
  4. 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 lib/ folder. see #549

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.