ci: harden template build pipeline and expand rust test coverage - #440
Open
l50 wants to merge 6 commits into
Open
ci: harden template build pipeline and expand rust test coverage#440l50 wants to merge 6 commits into
l50 wants to merge 6 commits into
Conversation
**Added:** - Composite `setup-buildx` action that retries the BuildKit image pull with backoff to survive transient Docker Hub failures - `.github/actions/setup-buildx/action.yml` - Weekly cron schedule and `ares-*` crate/Cargo path triggers to the template build workflow so images rebuild when the baked Rust binary sources change - `build-and-push-templates.yaml` - `report-failure` job that opens or updates a tracking issue when template builds fail on main - `build-and-push-templates.yaml` - Prefetch step for remote Taskfile includes with retries and a longer timeout to avoid transient CDN failures - `pre-commit.yaml` - `workflow_dispatch` support with manual PR-number validation to the semantic PR title check - `semantic-prs.yaml` - Proxmox placeholder env vars for template validation - `validate-templates.yaml` - Ansible-aware change detection that maps changed playbooks and shared ansible files to affected templates - `test-template-builds.yaml` **Changed:** - Replaced inline `docker/setup-buildx-action` usages with the new composite action across build and test workflows - Made buildcache export non-fatal via `ignore-error=true` and expanded the disk-cleanup step to reclaim ~25GB for GPU image builds - `build-and-push-templates.yaml` - Bumped pinned actions: `checkout` v7.0.0→v7.0.1, `setup-python` v6.3.0→v7.0.0, `setup-go` v6→v7, `upload-artifact`, `action-gh-release`, `renovate`, `taiki-e/install-action`, and `dtolnay/rust-toolchain` - Bumped `WARPGATE_VERSION` v4.9.1→v4.10.0 across template workflows - Switched Renovate automerge from branch to PR type and enabled `RENOVATE_FORK_PROCESSING` - `renovate.json5`, `renovate.yaml` - Skipped cargo hooks in pre-commit and ran clippy with `--all-targets` since Rust checks run in the dedicated Rust workflow - `pre-commit.yaml`, `rust.yaml` - Made release binary packaging fail loudly when an expected binary is missing - `release.yaml` - Made SARIF upload non-blocking with `continue-on-error` - `semgrep.yaml` - Reworked template test builds to skip the push/pull round-trip and scope change detection to `warpgate-templates/templates/` - `test-template-builds.yaml` **Removed:** - Molecule test workflow - `.github/workflows/molecule.yaml`
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #440 +/- ##
==========================================
- Coverage 81.33% 80.50% -0.84%
==========================================
Files 476 460 -16
Lines 170395 161591 -8804
==========================================
- Hits 138588 130084 -8504
+ Misses 31807 31507 -300
🚀 New features to boost your workflow:
|
**Added:** - Config command tests validating path resolution, shipped config parsing/rendering, and model-setting behavior including comment preservation, step budget retention, unknown-role rejection, and required-role enforcement - ares-cli/src/config.rs - Host deduplication tests covering CIDR/empty-IP filtering, row merging, FQDN upgrades, DC stickiness, OS backfilling, role unioning, hostname-only folding, known-DC backfill, and IP sorting - ares-cli/src/ops/loot/format/hosts.rs - Loot snapshot tests verifying domain normalization, key deduplication, identity case-folding, verbatim password/host/share handling, and collapse of repeated entries - ares-cli/src/ops/loot/snapshot.rs - `CARGO_LLVM_COV_VERSION` environment variable to pin the cargo-llvm-cov tool version in the Rust workflow - .github/workflows/rust.yaml **Changed:** - Renovate configuration to track and update the pinned `cargo-llvm-cov` version via a regex manager for workflow files - .github/renovate.json5 - cargo-llvm-cov install step to use the pinned version from the environment variable - .github/workflows/rust.yaml
…orkflows # Conflicts: # .github/workflows/molecule.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Key Changes:
Added:
.github/actions/setup-buildx/action.ymlthat retries BuildKit image pulls up to 5 times before failing, replacing scattered inlinedocker/setup-buildx-actionusageares-cli,ares-core,ares-llm,ares-tools,Cargo.toml,Cargo.lock) tobuild-and-push-templates.yamlso template images rebuild when the bakedaresbinary changesreport-failurejob that opens or updates a GitHub issue when template builds fail on mainworkflow_dispatchpath tosemantic-prs.yamlfor validating conventional-commit titles on demandCARGO_LLVM_COV_VERSIONin workflows up to date, pinned via newCARGO_LLVM_COV_VERSIONenv inrust.yamlvalidate-templates.yamlset_modelbehavior tests inares-cli/src/config.rs; host dedup tests inops/loot/format/hosts.rs; and loot snapshot normalization tests inops/loot/snapshot.rsChanged:
ignore-error=trueto registry--cache-toexports so cache push failures don't fail builds:automergeBranchpresetcargo-fmt,cargo-clippy,cargo-check,cargo-test) since they run in the dedicated Rust workflow, trimming ~11 minutesrelease.yamlfail loudly when an expected release binary is missing instead of silently skippingRENOVATE_FORK_PROCESSINGso renovate processes forks--all-targetsinrust.yamlcontinue-on-error: trueso SARIF upload failures don't block the workflowtest-template-builds.yamlto scanwarpgate-templates/templates/, pull in templates affected by ansible playbook changes, build without pushing, and reference theghcr.io/l50/*registrysetup-pythonto v7.0.0,setup-goto v7,upload-artifactto v7.0.1,action-gh-releaseto v3.0.2,renovatebot/github-actionto v46.2.1, andtaiki-e/install-actionacross workflowsRemoved:
.github/workflows/molecule.yamland its role change detection, matrix generation, and per-role test jobs