GITHUB_REF_NAME resolves to the PR number on pull_request events,
not the branch name. Fetch by commit SHA directly which works for
both push and pull_request triggers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The actions/checkout action requires Node.js which is unavailable
in the rust:1.89-bookworm container. Use manual git clone with
shallow depth for a Node-free checkout.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The GitHub actions/checkout@v4 requires Node.js which is not
available in the rust container image. Switch to Gitea's native
checkout action that runs without Node.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three-stage CI pipeline with fmt, clippy and audit as parallel
quality gates, tests gated on quality, and Docker build+push
to registry.meghsakha.com on main and release/* branches.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>