mirror of
https://github.com/storytold/craft-common-actions.git
synced 2026-11-10 20:51:55 +00:00
* ci: add a shared CI workflow for the craft apps A reusable workflow that runs each app's quality gate (by default `cargo xtask ci`) on one or more runners, with the suite's shared setup: cached apt packages, the repository's toolchain, prebuilt cargo tools, the craft-fonts and craft-i18n checkouts, and a dependency cache that only the default branch writes. The rust-cache key includes the root Cargo.toml: rust-cache hashes only the workspace members' manifests, so a [profile] change in a virtual root manifest would otherwise keep restoring the old cache. Part of #60. * tests: cover the shared CI workflow test_ci.py checks that third-party actions are pinned to commits, that only non-PR runs on the default branch save the cache, that caller input reaches run blocks only through env, and runs the caller-environment script under bash to check it writes valid KEY=VALUE lines and rejects others. The craft-fonts test also holds ci.yml to the suite's pin, and the test workflow runs on changes to ci.yml. * docs: document the shared CI workflow Describes what ci.yml sets up and runs, with a plain caller and one that adds a Windows leg on main, manual runs and full-ci pull requests. * actions: don't persist credentials in the craft-fonts and craft-i18n checkouts Both repositories are public and nothing later in a job runs git in them, so the token has no use there. * ci: name the shared workflow gate.yml The repository's own CI proposed in #21 takes .github/workflows/ci.yml. Callers use .github/workflows/gate.yml@main; the job still reports as gate (<os>).