Reusable workflows for Rust projects including linting, multi-platform testing, release preparation, tagging, publishing, caching, and documentation deployment.
Note on authentication
Some workflows in this namespace require a GitHub App installation token instead of the default
GITHUB_TOKEN.This is intentional. Commits, pull requests, and tags created using
GITHUB_TOKENdo not always trigger subsequent workflows due to GitHub’s event-propagation restrictions. Using a GitHub App token ensures that version bumps, release preparation, and automated tagging behave exactly as if they were performed by a normal user, allowing downstream workflows to run reliably.Any workflow that requires
APP_IDandAPP_PRIVATE_KEYis using this mechanism.
jobs:
rust_ci:
uses: EarthmanMuons/reusable-workflows/.github/workflows/check-rust.yml@mainRuns formatting, clippy linting, stable multi-platform tests, and MSRV tests.
Runs the full Rust test suite against the latest beta toolchain.
Runs tests using nightly Rust with the Miri interpreter.
Caches Rust dependencies for both stable and MSRV toolchains.
Uses cargo-release to bump versions, update documentation, and open a PR.
Inputs
- package
- level
Secrets
APP_IDAPP_PRIVATE_KEY
Authentication
This workflow requires a GitHub App token (see namespace note above).
Adds missing crate version tags using cargo-release and pushes them.
Required secrets
APP_IDAPP_PRIVATE_KEY
Authentication
This workflow requires a GitHub App token (see namespace note above).
Publishes an unpublished Rust crate to crates.io.
Required secret
CARGO_REGISTRY_TOKEN
Creates a GitHub draft release and uploads compiled artifacts across platforms.
Builds rustdoc and deploys documentation to GitHub Pages.
Required permissions
pages: writeid-token: write