GitHub Action and reusable workflows for relctl — the successor to awesome-ci.
Provides:
- Composite action — installs the
relctlbinary (no Node.js or Docker required) - Reusable workflow
generate-build-infos— collects PR metadata (version, SHA, branch, …) - Reusable workflow
create-release— creates a GitHub release from a merged PR
- uses: layer87-labs/relctl-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}- uses: layer87-labs/relctl-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
run: "relctl pr info"The run input is optional. When set, relctl is installed and the command is executed immediately. All RELCTL_* variables set by the command are written to GITHUB_ENV and GITHUB_OUTPUT automatically.
| Input | Required | Default | Description |
|---|---|---|---|
github-token |
yes | — | GitHub token used for release API calls (${{ secrets.GITHUB_TOKEN }}) |
relctl-version |
no | "latest" |
relctl version to install: "latest", "1.2.3" or "v1.2.3" (matched against release tags with or without a v prefix). |
run |
no | "" |
Optional relctl command to execute after installation. |
- Resolves the version — if
"latest", queries the GitHub Releases API to find the most recent tag; an explicit version is looked up as a release tag with and without avprefix, and the action fails with the tags it tried if neither exists. - Detects the runner platform — supports
linux/amd64,linux/arm64,darwin/amd64,darwin/arm64. - Downloads the binary — from
https://github.com/layer87-labs/relctl/releases/download/<version>/. - Verifies the SHA-256 checksum — against the
sha256sum.txtfile published with every release. Fails fast if the checksum does not match. - Adds the binary to
PATH— available asrelctlfor all subsequent steps. - Smoke-tests the installation by running
relctl --version. - Runs the optional command (if
runis set).
Callers of the reusable workflows get the action version that the workflow pins, which is the previous release (a commit cannot contain its own hash).
Drop-in replacement for fullstack-devops/git-workflows/.github/workflows/generate-build-infos.yml.
jobs:
build-info:
uses: layer87-labs/relctl-action/.github/workflows/generate-build-infos.yml@v1
secrets:
token: ${{ secrets.GITHUB_TOKEN }}| Input | Required | Default | Description |
|---|---|---|---|
prnumber |
no | ${{ github.event.pull_request.number }} |
PR number (auto-detected from event) |
relctl-version |
no | "latest" |
relctl version to install |
| Output | Description |
|---|---|
pr |
Pull request number |
sha |
SHA of the PR head commit |
sha-short |
Short SHA of the PR head commit |
branch |
PR source branch name |
owner |
Repository owner |
repo |
Repository name |
patch-level |
Detected semver patch level (major/minor/patch) |
version |
Build version string (<next-version>-pr-<number>) |
latest-version |
Latest released version |
next-version |
Next release version derived from PR labels |
Drop-in replacement for fullstack-devops/git-workflows/.github/workflows/create-release.yml.
jobs:
release:
uses: layer87-labs/relctl-action/.github/workflows/create-release.yml@v1
secrets:
token: ${{ secrets.GITHUB_TOKEN }}| Input | Required | Default | Description |
|---|---|---|---|
relctl-version |
no | "latest" |
relctl version to install |
version-scheme |
no | "semver" |
Version scheme to use: "semver", "calver" or "conventional-commits" |
| Output | Description |
|---|---|
release-id |
ID of the created GitHub release |
sha |
SHA of the merge commit |
sha-short |
Short SHA of the merge commit |
owner |
Repository owner |
repo |
Repository name |
version |
Released version |
latest-version |
Latest released version (before release) |
next-version |
The version that was released |
| OS | Architecture |
|---|---|
| Linux | amd64 |
| Linux | arm64 |
| macOS | amd64 |
| macOS | arm64 |
Windows runners are not supported (shell-only composite action).
Apache-2.0 — see LICENSE.