CI & releases
Automated CI pipelines, manual workflow runs, and cross-platform release binaries via GitHub Actions.
The stepper repository uses GitHub Actions for continuous integration, manual workflow runs, and automated release distribution. Three workflows handle building, testing, and publishing binaries across platforms.
ci.yml — Build & test on push
Runs on every push and pull request to validate the codebase. The workflow executes the following quality gates:
build— compiles the workspace withcargo build --workspaceclippy -D warnings— runs clippy linter with treat-warnings-as-errors mode to enforce code qualitytest— executescargo test --workspace(live tests marked#[ignore]or gated by environment are skipped)install— a smoke test that runsscripts/install.shto verify the installation script works
run.yml — Manual headless execution
A manual workflow triggered via workflow_dispatch for on-demand test runs. The workflow builds and installs stepper, then runs it headless with user-provided inputs.
- Accepts three workflow inputs:
prompt(the headless prompt),model(the model ID to use), andmode(the permission mode) - Uses repo secrets named
STEPPER_<PROVIDER>_API_KEYfor provider authentication (e.g.,STEPPER_ANTHROPIC_API_KEY)
release.yml — Cross-platform publishing
Triggered by a push to the prod branch or manual workflow dispatch. This workflow gates on passing quality checks, builds optimized release binaries, and publishes them to a GitHub Release.
Quality gates
build— compiles withcargo build --workspaceclippy -D warnings— enforces zero warningstest— runs the full test suite
Release artifacts
The workflow builds and publishes binaries for three target platforms:
- macOS arm64 (Apple Silicon)
- Linux x86_64
- Windows x86_64
For each target, the workflow publishes both versioned and version-less archives:
- Versioned:
stepper-<version>-<target>.tar.gzor.zip(includes version in name) - Version-less:
stepper-<target>.tar.gzor.zip(stable URL for static hosting)
Archives are published to a GitHub Release tagged v<version>, where the version is read from the workspace version in Cargo.toml. Bump the version in Cargo.toml to cut a new release; re-pushing the same version updates the release assets.
Distribution
The repository is public, so end users download binaries directly from the latest GitHub release. The install scripts referenced in §1 (hosted on the separate stepper.gumyo.net site) pull from releases/latest/download to fetch the platform-specific archive, decompress it, and install the stepper binary into ~/.local/bin.