GitHub Actions workflows for release management of the repository.
Changes since this image was created:
- We changed prerelease channel for draft pr from
betatoalpha. - We changed prerelease channel for ready pr from
rctobetaandrc.- We can change
betatorcby enablingStart Release Candidatein dispatch event.
- We can change
- Make the stable branch and set the name to
STABLE_BRANCH - If you want to rewrite package.json(s), set
PACKAGE_JSONS_TO_REWRITEandINDENTaccording 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 alpha.0 tag
- Issue a pre-release version during the release process
- Issue a release candidate, when you check
Start Release Candidate - 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
Contentspermission is required for theon: releaseworkflow to run via automatic release.
The reason is thaton: releaseworkflows are not triggered for releases created with the defaultGITHUB_TOKEN. - The
Pull requestspermission 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.
tabor number of spaces USE_RELEASE_APP- See "If you have `on: release` workflows..."
