Tom Foster
|
b0ebdb59ed
|
ci: Tidy CI pipeline for readability and performance
Pipeline Modernisation:
- Update prefligit to prek (same project, renamed to avoid
typosquatting)
- Replace custom rust-toolchain action with direct uvx rustup
invocation
- Remove dependency on install scripts in favour of uvx tool
execution
- Make sccache conditional on GH_APP_ID and GH_APP_PRIVATE_KEY
availability
Workflow Restructuring:
- Rename workflows for improved clarity:
* rust-checks.yml → ci-checks.yml (consolidates Rust + prek)
* element.yml → deploy-element.yml
* documentation.yml → deploy-docs.yml
* release-image.yml → release-builds.yml (Docker + binaries)
* mirror-images.yml → docker-mirror.yml
- Delete obsolete prefligit-checks.yml (merged into ci-checks.yml)
- Combine format and prek checks into single fast-checks job
Cache Strategy Improvements (release-builds.yml):
- Add restore-keys to Rust registry and cargo target caches
- Include Cargo.toml files in cargo-target cache key
- Consolidate separate apt-cache and apt-lib steps into single step
- Version APT cache with Dockerfile hash instead of static keys
- Add platform-specific Docker buildcache tags
- Simplify Rust registry paths (remove checkouts/src subdirs)
CI Execution Improvements:
- Add uv cache for faster uvx tool invocations (prek, rustup)
- Enable concurrency control with cancel-in-progress
- Fix BOM handling in pre-commit
Dependency Management:
- Add renovate.yml workflow for scheduled dependency checking
- Configure renovate.json to monitor .forgejo/ and .github/ dirs
- Group non-major GitHub Actions updates into single PRs
- Set PR limits: 3 concurrent, 2 per hour
|
2025-08-14 12:47:15 +01:00 |
|