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. Use "latest" or a semver tag like "1.2.3". |
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. - 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).
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 |
| 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.