Skip to content

GitHub ​

relwolf is available as a Docker container action. It runs on Linux runners only.

1. Create a token ​

Store a token as the repository secret RELWOLF_TOKEN.

TokenPermissionsNotes
Personal access tokencontents and pull requests writeRecommended: CI runs on the release pull request and the tag push triggers other workflows
Built-in GITHUB_TOKENcontents: write, pull-requests: write, and Allow GitHub Actions to create and approve pull requests in the repository settingsEvents created with it do not trigger other workflows

2. Repository settings ​

  • Allow squash merging only.
  • Enable Automatically delete head branches.

3. Add the workflow ​

yaml
name: Release
on:
  push:
    branches: [main] # your default branch
concurrency:
  group: release
permissions:
  contents: write
  pull-requests: write
jobs:
  relwolf:
    runs-on: ubuntu-latest # Linux runners only (Docker container action)
    steps:
      - uses: actions/checkout@v7
        with:
          fetch-depth: 0 # relwolf needs the full history and all tags
      - uses: lupiq/relwolf@v0 # x-relwolf-major
        with:
          token: ${{ secrets.RELWOLF_TOKEN }}

The action runs the Docker image of the same version. The major tag (@v1 above) follows the latest stable release of that major version; use an exact tag such as @v1.2.3 to pin.

Action inputs ​

InputRequiredDescription
tokenyesAccess token for all API calls (becomes RELWOLF_TOKEN)
release-asnoForces the version of the next release, see Controlling the next version

Forcing a version ​

yaml
on:
  push:
    branches: [main]
  workflow_dispatch:
    inputs:
      release-as:
        description: 'Force the next version, e.g. 1.0.0 ("auto" removes a request)'
        required: false
        default: ''
# ...
- uses: lupiq/relwolf@v0 # x-relwolf-major
  with:
    token: ${{ secrets.RELWOLF_TOKEN }}
    release-as: ${{ inputs.release-as }}

Then start the workflow from the Actions tab, or with gh workflow run release.yml -f release-as=1.0.0.

Configure (optional) ​

Add a relwolf.yaml to the repository root.

What you will see ​

  • A pull request chore(release): prepare for v1.2.3 from relwolf/main, labelled relwolf: pending.
  • After the merge: the tag v1.2.3, a GitHub release with the changelog entry and the label relwolf: tagged.
Developed by lupiqlupiq