Skip to content

Action inputs and outputs

This page is generated from action.yml by scripts/generate-action-reference.py. Do not edit this file manually.

Source

  • Action definition: action.yml
  • Generator script: scripts/generate-action-reference.py

Inputs

mode

  • Required: false
  • Default: release

Description:

ci Build Docker image and push pr- to GHCR (run on pull_request events). release (default) Run versioning, promote Docker image, and optionally create a promotion PR (when deployment-model is tbd-pr and create-promotion-pr is true).

auth-mode

  • Required: false
  • Default: public-app

Description:

Token source for git/release operations. One of: public-app (default) Use the Release Runner GitHub App installed on the repository or organization. auto Use private-app when app-id/app-private-key are set, otherwise use github-token/GITHUB_TOKEN. github-token Use github-token or the workflow GITHUB_TOKEN. private-app Generate a token from app-id/app-private-key.

token-broker-url

  • Required: false
  • Default: https://release-runner.sargeant.workers.dev

Description:

Advanced override for the hosted Release Runner GitHub App auth service. Most repositories should not set this.

oidc-audience

  • Required: false
  • Default: release-runner

Description:

Advanced override for public-app authentication. Most repositories should not set this.

versioning-tool

  • Required: false
  • Default: semantic-release-python

Description:

The versioning tool to use. One of: semantic-release-python python-semantic-release v10 (default) semantic-release-npm semantic-release v24 (Node.js / JavaScript) gitversion GitVersion via gittools/actions release-please Google release-please-action v4

deployment-model

  • Required: false
  • Default: tbd

Description:

Controls how the target environment is determined. tbd (default) Trunk-Based Development. Pass environment explicitly. bbd Branch-Based Development. Environment inferred from branch-map. tbd-pr TBD with PR-based promotion. Environment detected from the merged promote/* PR head branch.

branch-map

  • Required: false
  • Default: ''

Description:

JSON object mapping branch names to environment names. Only used when deployment-model is bbd. Example: {"dev": "dev", "staging": "staging", "main": "prod"}

promote-branch-prefix

  • Required: false
  • Default: promote

Description:

Prefix for promotion PR branches (deployment-model: tbd-pr). Example: 'promote' → branch promote/staging/1.2.3-dev.1

promote-target-branch

  • Required: false
  • Default: main

Description:

Target branch for promotion PRs.

create-promotion-pr

  • Required: false
  • Default: false

Description:

When true, automatically creates the next environment promotion PR after a prerelease (deployment-model: tbd-pr only). Set to false when using the tbd-promote reusable workflow separately.

environment

  • Required: false
  • Default: ''

Description:

The target environment for this run. Must be in environments. Required when deployment-model is tbd.

environments

  • Required: false
  • Default: ["dev", "staging", "prod"]

Description:

JSON array of environment names in promotion order. The last entry is always treated as production (stable semver). Profiles: ["dev","prod"] | ["dev","staging","prod"] | ["dev","tst","acc","prd"]

prerelease-identifiers

  • Required: false
  • Default: {"dev": "dev", "staging": "rc"}

Description:

JSON object mapping environment names to prerelease identifier strings. The production environment must be omitted from this map. Example: {"dev": "dev", "staging": "rc"}

tag-prefix

  • Required: false
  • Default: v

Description:

Version tag prefix.

github-token

  • Required: false
  • Default: ''

Description:

GitHub token for GHCR login and, unless auth-mode uses a GitHub App, git push, tag creation, GitHub Releases, and promotion PR creation. Defaults to the workflow GITHUB_TOKEN when omitted.

app-id

  • Required: false
  • Default: ''

Description:

GitHub App ID. When provided with app-private-key, generates a short-lived token to bypass branch protection rules.

app-private-key

  • Required: false
  • Default: ''

Description:

GitHub App private key (PEM). Required when app-id is set.

image_name

  • Required: false
  • Default: ''

Description:

Base image name without registry or owner prefix (e.g., my-app). Sets IMAGE_NAME=/ for the bake file. Required for mode: ci. When set in mode: release, images are promoted after versioning.

bake_file

  • Required: false
  • Default: docker-bake.hcl

Description:

Path to docker-bake.hcl

bake_target

  • Required: false
  • Default: default

Description:

Bake target or group to build/promote. Groups are expanded — all sub-targets are built/promoted automatically.

registry

  • Required: false
  • Default: ghcr.io

Description:

Container registry

platforms

  • Required: false
  • Default: linux/amd64

Description:

Target platforms (comma-separated) for CI builds and fallback fresh builds.

enforce_branch_naming

  • Required: false
  • Default: true

Description:

Enforce TBD branch naming convention on PRs (mode: ci). Allowed prefixes: feat, fix, chore, hotfix, docs, refactor, perf, test, ci, style. Set to false for BBD (branches are named after environments).

working-directory

  • Required: false
  • Default: .

Description:

Working directory containing the versioning config file. For semantic-release-python: pyproject.toml For semantic-release-npm: .releaserc.json / package.json For gitversion: GitVersion.yml

create-release

  • Required: false
  • Default: true

Description:

Create a GitHub Release on every version bump.

changelog

  • Required: false
  • Default: true

Description:

Generate/update CHANGELOG.md (semantic-release-python and semantic-release-npm).

gitversion-spec

  • Required: false
  • Default: 6.x

Description:

GitVersion version spec (e.g., 6.x). Only used when versioning-tool is gitversion.

gitversion-config

  • Required: false
  • Default: GitVersion.yml

Description:

Path to GitVersion.yml. Only used when versioning-tool is gitversion.

gitversion-appsettings-file

  • Required: false
  • Default: ''

Description:

Path to a JSON file (e.g., appsettings.json) where the version is injected and committed back to the branch. Only used when versioning-tool is gitversion.

gitversion-appsettings-version-path

  • Required: false
  • Default: .Application.Version

Description:

jq path for the version field in the appsettings file. Only used when gitversion-appsettings-file is set. Example: .Application.Version

release-please-release-type

  • Required: false
  • Default: simple

Description:

release-please release type (python, node, simple, go, etc.).

release-please-config-file

  • Required: false
  • Default: release-please-config.json

Description:

Path to release-please-config.json.

Outputs

version

  • Value: ${{ steps.normalize.outputs.version }}

Description:

Semver version string without prefix (e.g., 1.2.3 or 1.2.3-rc.1)

tag

  • Value: ${{ steps.normalize.outputs.tag }}

Description:

Full git tag with prefix (e.g., v1.2.3 or v1.2.3-rc.1)

is-prerelease

  • Value: ${{ steps.detect-env.outputs.is_prerelease }}

Description:

"true" if this environment produces a prerelease version

released

  • Value: ${{ steps.normalize.outputs.released }}

Description:

"true" if a new version was created and published

prerelease-identifier

  • Value: ${{ steps.detect-env.outputs.prerelease_identifier }}

Description:

The prerelease identifier (e.g., dev, rc, alpha). Empty for production.

resolved-environment

  • Value: ${{ steps.detect-env.outputs.environment }}

Description:

The resolved environment name.