GitHub Action that downloads, configures, and starts the Vorpal service for use in CI/CD workflows.
- 🚀 Downloads and installs Vorpal binary from GitHub releases
- 🔧 Configures Vorpal directories and permissions
- 🔑 Generates required cryptographic keys
- 🌐 Starts Vorpal services (agent, registry, worker)
- ☁️ Supports multiple registry backends (local, S3)
- 🔒 Automatic cleanup on workflow completion
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Setup Vorpal
uses: ALT-F4-LLC/setup-vorpal-action@mainname: CI with S3 Registry
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Setup Vorpal
uses: ALT-F4-LLC/setup-vorpal-action@main
with:
port: "23151"
registry-backend-s3-bucket: "my-vorpal-registry"
registry-backend: "s3"
services: "agent,registry,worker"
version: "0.4.0"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_DEFAULT_REGION: us-west-2
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}Tip
Pin version explicitly for reproducible, production CI runs. Omit it to always install the latest release for convenience or local development.
| Input | Description | Required | Default |
|---|---|---|---|
github-token |
Token used to authenticate gh attestation verify when installing a released binary |
false | ${{ github.token }} |
port |
Port for vorpal services | false | 23151 |
registry-backend-s3-bucket |
S3 bucket name for s3 backend | false | - |
registry-backend |
Registry backend to use (local, s3) | false | local |
services |
Services to start (comma-separated) | false | agent,registry,worker |
version |
Version of Vorpal to install (e.g., 0.4.0) | false | latest release |
When using the S3 registry backend, the following environment variables are required:
AWS_ACCESS_KEY_ID: AWS access key IDAWS_SECRET_ACCESS_KEY: AWS secret access keyAWS_DEFAULT_REGION: AWS region
The action supports the following architectures:
- Linux: x86_64, aarch64
- macOS: x86_64, aarch64
When installing a released Vorpal binary (use-local-build: false, the default), the
action verifies the downloaded binary's
GitHub artifact attestation
via the gh CLI before marking it executable. Verification is pinned to the
ALT-F4-LLC/vorpal release workflow and fails closed on any error (tampered binary,
missing attestation, wrong signer, or gh unavailable).
- Requires the
ghCLI on the runner (pre-installed on GitHub-hosted runners) and network egress to GitHub's attestation API. - Requires a token with permission to read attestations on
ALT-F4-LLC/vorpal; thegithub-tokeninput defaults to${{ github.token }}. - The minimum supported Vorpal version is
0.2.2(the oldest release with a published attestation). Pinning an older version fails the install.
- Install Vorpal: Downloads and installs the Vorpal binary from GitHub releases
- Setup Directories: Creates necessary directories under
/var/lib/vorpal/with proper permissions - Generate Keys: Creates cryptographic keys required by Vorpal
- Start Services: Launches the specified Vorpal services in the background
- Cleanup: Automatically stops services when the workflow completes
- Node.js 20+
- npm
npm installnpm run buildnpm testnpm run lint- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue on GitHub.