Skip to main content

Configuration

Complete reference for record-release inputs and outputs.

Inputs

Authentication

InputDescriptionRequiredDefault
tokenGroo Ops API tokenYes*-
secret-keyPrivate key for decrypting secretsNo-
api-urlOps API base URLNohttps://ops.groo.dev/v1
github-tokenGitHub token for releasesNo${{ github.token }}

* Not required for upload-only or config-only modes.

Versioning

InputDescriptionRequiredDefault
environmentTarget environment (production, staging, development)No-
versionExplicit version to record (e.g., 1.2.3)No-
bumpVersion bump type (major, minor, patch)Nopatch
get-versionQuery current version without recordingNofalse
dry-runEnable multi-job mode (init phase)Nofalse

GitHub Release

InputDescriptionRequiredDefault
skip-github-releaseSkip creating GitHub releaseNofalse
release-prefixTag prefix for monorepos (e.g., apiapi-v1.0.0)No-
bodyInline release notesNo-
body-filePath to release notes fileNo-
artifactsGlob patterns for release assets (one per line)No-
draftCreate as draft releaseNofalse
prereleaseMark as prereleaseNofalse

Metadata

InputDescriptionRequiredDefault
commit-hashGit commit SHANo${{ github.sha }}
commit-messageCommit messageNoFrom event
deployed-byDeployer identifierNogithub-actions

Outputs

Version Info

OutputDescription
versionThe version that was/will be recorded
idDeployment record ID

Get-Version Mode

Available when using get-version: true:

OutputDescription
deployed-atDeployment timestamp
commit-hashCommit hash of the deployment

Config Values

When using secret-key, all config values are available with the config. prefix:

OutputDescription
config.<KEY>Value of the config variable/secret

Example:

- uses: groo-dev/record-release@v1
id: release
with:
token: ${{ secrets.OPS_API_TOKEN }}
secret-key: ${{ secrets.OPS_SECRET_KEY }}
environment: production

- run: echo ${{ steps.release.outputs.config.API_KEY }}

Permissions

Your workflow needs these permissions:

permissions:
contents: write # For creating GitHub releases and tags

Operational Modes

The action automatically determines its mode based on inputs:

ModeInputsBehavior
Single-jobtoken + environmentGet version → build → record + release
Inittoken + environment + dry-run: trueGet version, save session
Finalizetoken (session exists)Download session, record + release
Config-onlysecret-key (session exists)Decrypt and expose config
Upload-onlyartifacts onlyUpload artifacts for later jobs
Get-versiontoken + get-version: trueQuery without recording
Explicittoken + versionRecord specific version immediately

Environment Variables

These environment variables are set during the action:

VariableDescription
RECORD_RELEASE_VERSIONThe recorded version
RECORD_RELEASE_IDDeployment record ID