ci: use updated pools (#3143)#3211
ci: use updated pools (#3143)#3211babayet2 wants to merge 1 commit intomicrosoft:release/1.7.2511from
Conversation
Backport of PR microsoft#3143 there were conflicts in this cherry-pick. elected to also include a CI fail-fast optimization, as well as replacing hardcoded references to macos targets with a variable
There was a problem hiding this comment.
Pull request overview
This PR backports CI pool updates (from #3143) into the Flowey-generated pipelines and the generated GitHub Actions workflow, and also introduces an intended PR-only “quick-check” phase to fail faster before running the full job fan-out.
Changes:
- Update GitHub Actions self-hosted runner labels to the renamed 1ES pools and new image overrides.
- Introduce an
AdoPool { name, demands }type so ADO jobs can specify image demands (e.g.,1ES.ImageOverride -equals ...), and update pool selection helpers accordingly. - Add a PR/PR-release “quick check” job and refactor macOS clippy target selection to avoid redundant x64-linux clippy when phase 1 runs.
Reviewed changes
Copilot reviewed 7 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| flowey/flowey_hvlite/src/pipelines/checkin_gates.rs | Adds PR-only quick-check job; switches several jobs to new GH pool helpers; refactors clippy target lists. |
| flowey/flowey_hvlite/src/pipelines_shared/gh_pools.rs | Replaces old GH pool label helpers with new *_1es() helpers using updated pool names/images. |
| flowey/flowey_hvlite/src/pipelines_shared/ado_pools.rs | Switches ADO pool selection to return an AdoPool with image-override demands. |
| flowey/flowey_core/src/pipeline.rs | Promotes AdoPool to a public type and updates PipelineJob::ado_set_pool API. |
| flowey/flowey_cli/src/pipeline_resolver/generic.rs | Updates imports/types to use the public AdoPool. |
| flowey/flowey_cli/src/pipeline_resolver/ado_yaml.rs | Updates imports/types to use the public AdoPool. |
| .github/workflows/openvmm-ci.yaml | Updates runs-on self-hosted labels to the renamed pools and image overrides. |
| // ── Phase 1: quick-check gate ────────────────────────────────────── | ||
| // Combined fmt + clippy on one self-hosted linux machine. | ||
| // Catches the most common failures quickly before fanning out expensive jobs. | ||
| let quick_check_job = if matches!(config, PipelineConfig::Pr | PipelineConfig::PrRelease) { | ||
| let job = pipeline |
There was a problem hiding this comment.
quick_check_job is created as a “Phase 1” gate, but it isn’t added to all_jobs and no dependencies are added from later jobs to it. As a result, (1) the “openvmm checkin gates” aggregator job won’t wait on the quick-check job, and (2) the pipeline won’t actually fail-fast / gate expensive jobs as the comment describes. Consider pushing quick_check_job into all_jobs and adding pipeline.non_artifact_dep(job, quick_check_job) for the jobs you want to fan out after phase 1 (either as you create them, or by iterating over all_jobs once at the end).
| // ── Phase 1: quick-check gate ────────────────────────────────────── | ||
| // Combined fmt + clippy on one self-hosted linux machine. | ||
| // Catches the most common failures quickly before fanning out expensive jobs. | ||
| let quick_check_job = if matches!(config, PipelineConfig::Pr | PipelineConfig::PrRelease) { |
There was a problem hiding this comment.
I guess pulling this whole change in was needed?
Backport of PR #3143, which points to updated CI pools
There were conflicts in this cherry-pick. elected to also include a CI fail-fast optimization, as well as replacing hardcoded references to macos targets with a variable.