A composite GitHub Action that installs wfctl, the CLI for the GoCodeAlone workflow engine.
steps:
- uses: actions/checkout@v4
- uses: GoCodeAlone/setup-wfctl@v1
- run: wfctl infra plan -c infra.yamlsteps:
- uses: actions/checkout@v4
- uses: GoCodeAlone/setup-wfctl@v1
with:
version: 'v0.3.51'
- run: wfctl validate -c app.yamlname: Validate workflow config
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: GoCodeAlone/setup-wfctl@v1
with:
version: 'latest'
token: ${{ secrets.GITHUB_TOKEN }}
- run: wfctl validate -c config/app.yaml
- run: wfctl diff -c config/app.yaml --base main| Input | Description | Required | Default |
|---|---|---|---|
version |
wfctl version to install (e.g. v0.3.51, latest) |
No | latest |
token |
GitHub token for downloading releases | No | ${{ github.token }} |
install-dir |
Directory to install wfctl into. When set, sudo is not used and the directory is added to PATH. Defaults to /usr/local/bin (existing behaviour). |
No | `` (uses /usr/local/bin) |
On self-hosted runners where sudo is unavailable or intentionally blocked, set install-dir to a user-writable path:
steps:
- uses: actions/checkout@v4
- uses: GoCodeAlone/setup-wfctl@v1
with:
install-dir: ${HOME}/.local/bin
- run: wfctl versionThe action will download wfctl directly into the specified directory, chmod +x it without sudo, and append the directory to GITHUB_PATH so subsequent steps can find the binary.
Downloaded binaries are cached using actions/cache@v5 keyed on version, OS, and architecture. Subsequent runs with the same version skip the download. The cache path reflects the resolved install directory.
MIT