Skip to content

GitHub vs. GitLab ​

relwolf's hosting platform is an interface with two implementations. The provider is auto-detected from GITLAB_CI / GITHUB_ACTIONS, or set with RELWOLF_PROVIDER.

TopicGitLabGitHub
Run relwolf withDocker image as image: of a CI joblupiq/relwolf GitHub Action (Linux runners)
Release requestMerge requestPull request
Token variableCI/CD variable RELWOLF_TOKEN (masked)Repository secret RELWOLF_TOKEN, passed as token
Token typePersonal/project access token, scope apiPersonal access token or GITHUB_TOKEN
Full cloneGIT_DEPTH: 0fetch-depth: 0
Prevent parallel runsresource_group: relwolfconcurrency: group: release
Merge methodFast-forward merge + SquashSquash merging only
Force a versionRun pipeline with variable RELWOLF_RELEASE_ASAction input release-as (e.g. workflow_dispatch)
Pre-release flagNot available (hint ignored)Releases are flagged as pre-release
Self-managedSupported (CI_API_V4_URL)GitHub Enterprise via GITHUB_API_URL

Side-by-side setup ​

yaml
relwolf:
  image: ghcr.io/lupiq/relwolf:0 # x-relwolf-major
  stage: release
  resource_group: relwolf
  variables:
    GIT_DEPTH: 0
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  script:
    - relwolf
yaml
name: Release
on:
  push:
    branches: [main]
concurrency:
  group: release
permissions:
  contents: write
  pull-requests: write
jobs:
  relwolf:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - uses: lupiq/relwolf@v0 # x-relwolf-major
        with:
          token: ${{ secrets.RELWOLF_TOKEN }}

relwolf releases itself with the GitHub provider (.github/workflows/release.yml).

Other platforms ​

The provider layer is replaceable: implement the Provider interface (src/providers/types.ts) and extend providers/index.ts. See Contributing.

Developed by lupiqlupiq