This repo is used to house our organisation-wide health files, which can include CONTRIBUTING, SUPPORT, CODE_OF_CONDUCT, ISSUE_TEMPLATE(S), or PULL_REQUEST_TEMPLATE(S). If another organisation repo doesn't include one of these files, it will fallback to the one found in this repo.
See here for more info.
This repo houses reusable GitHub Actions that any repo in the organisation can reference directly.
Automatically creates or updates a release PR from develop → main. Each time it runs, it:
- Finds all merged PRs on
developnot yet inmain - Builds a PR body listing each one with its author and assignees
- Auto-requests reviews from those authors and assignees
- Updates the PR body and adds any new reviewers if the release PR already exists
Pin to a published release tag for supply-chain safety. Published GitHub releases are immutable — the tag cannot be moved or deleted. Find available releases on the releases page.
# .github/workflows/release-pr.yml
name: Release PR
on:
push:
branches:
- develop
jobs:
release-pr:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: resident-advisor/.github/.github/actions/release-pr-bot@v1.0.1To use non-default branch names:
steps:
- uses: resident-advisor/.github/.github/actions/release-pr-bot@v1.0.1
with:
main_branch: master
develop_branch: staging| Input | Default | Description |
|---|---|---|
main_branch |
main |
The branch to release into |
develop_branch |
develop |
The branch being released |
Releases are created using scripts/release.sh, which tags the current commit and opens a draft GitHub release. Publishing the release makes the tag immutable.
- git
- GitHub CLI — install with
brew install gh - Authenticated with the GitHub CLI:
gh auth login
From main with a clean working directory:
# You should use semantic versioning to decide what version to pass
./scripts/release.sh v1.1.0The script will confirm the version, branch, and commit before doing anything. Once confirmed it will:
- Create and push the tag
- Open a draft release in GitHub
Add release notes to the draft, then publish it. Consumer repos update their uses: tag to pick up the new version.