GitHub Actions workflows for release management of the repository.
- Make the stable branch and set the name to
STABLE_BRANCH
- If you want to rewrite package.json(s), set
PACKAGE_JSONS_TO_REWRITE
andINDENT
according to the Variables clause.
Copy and use these workflows.
The core workflow that is manually triggered. It has three functions:
- Prepare release - create PR and beta.0 tag
- Issue a pre-release version during the release process
- Issue a stable release and merge PR, when you check
MERGE RELEASE BRANCH TO MAIN
This workflow changes the description of the PR when CHANGELOG.md is changed.
You must modify line#6 with the default (develop) branch.
Release rc when PR becomes ready for review.
You must create a GitHub App with following settings and set RELEASE_APP_ID
and RELEASE_APP_PRIVATE_KEY
as secrets.
Please execute following installation: https://github.com/actions/create-github-app-token/tree/v1/?tab=readme-ov-file#usage
- The
Contents
permission is required for theon: release
workflow to run via automatic release.
The reason is thaton: release
workflows are not triggered for releases created with the defaultGITHUB_TOKEN
. - The
Pull requests
permission is required to bypass the protect on the stable branch and perform PR merges.
App Settings | |
---|---|
Webhook | |
Active | disabled |
Repository permission | |
Contents | Read and Write |
Pull requests | Read and Write |
Open Install App
tab and install to the repository or whole the user/organization.
Then set USE_RELEASE_APP
as true
as a repository variable.
To maintain the integrity of the stable branch, it is recommended that it prohibit push by ruleset.
New Branch Ruleset | |
---|---|
Enforcement status | Active |
Bypass list | |
+ Add bypass | GitHub App you created and installed |
Targets | |
Target branches | stable |
Branch protections | |
Restrict creations | Enable |
Restrict updates | Enable |
Restrict deletions | Enable |
Require a pull request before merging | Enable |
Required approvals | 1 |
Block force pushes | Enable |
RELEASE_APP_ID
(optional)- See "If you have `on: release` workflows..."
RELEASE_APP_PRIVATE_KEY
(optional)- PEM cert. See "If you have `on: release` workflows..."
STABLE_BRANCH
- Name of the stable branch targeted by the release PR. **Required.**
PACKAGE_JSONS_TO_REWRITE
(optional)- package.jsons to rewrite version
e.g."package.json" "packages/misskey-js/package.json"
INDENT
(required when PACKAGE_JSONS_TO_REWRITE be set)- Indent type of package.json.
tab
or number of spaces USE_RELEASE_APP
- See "If you have `on: release` workflows..."