Repository navigation
fix(rp2040): do not infer Bluetooth-only Arduino-Pico libraries when Bluetooth is off #1498
Workflow file for this run
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
| name: CI Workflow Drift | |
| # Enforces that .github/workflows/build-*.yml and nightly-platforms.yml | |
| # match what `ci/render_workflows.py` would emit from the SOT files | |
| # (ci/board_families.json + ci/ci_common_paths.txt). See FastLED/fbuild#835. | |
| # | |
| # This is intentionally always-on (no paths filter) -- it is fast and | |
| # stops drift the moment it appears. If a contributor edits a per-board | |
| # `on:` block by hand, this gate fails with a copy-paste fix command. | |
| # | |
| # It also enforces that every `pull_request`-triggered workflow declares an | |
| # auto-cancel `concurrency:` block (ci/check_workflow_concurrency.py), so a | |
| # rapid series of pushes to a feature branch supersedes its in-flight runs | |
| # instead of queueing ~80 more board builds behind them. | |
| on: | |
| workflow_dispatch: {} | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| # Auto-cancel superseded PR runs: pushing again to a feature branch | |
| # supersedes the in-flight run instead of queueing behind it. Non-PR | |
| # events key on run_id so each gets its own group -- a shared group keeps | |
| # only ONE pending run, which would silently drop queued main SHAs. | |
| concurrency: | |
| group: ci-workflow-drift.yml-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| check: | |
| name: Render-and-diff | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Verify rendered workflows match SOT | |
| run: uv run --no-project python ci/render_workflows.py --check | |
| - name: Verify PR-triggered workflows auto-cancel superseded runs | |
| run: uv run --with pyyaml --no-project python ci/check_workflow_concurrency.py | |
| - name: Unit-test the concurrency guard | |
| run: uv run --with pyyaml --no-project python -m unittest ci.test_workflow_concurrency | |
| # soldr's blessed cross path is the only sanctioned one; cargo-zigbuild, | |
| # ziglang, zig cc and cargo-xwin are retired. This gate keeps them from | |
| # coming back via a copy-pasted snippet or a half-remembered recipe. | |
| # See agents/docs/cross-compilation.md. | |
| - name: Verify the retired cross backends stay purged | |
| run: uv run --no-project python ci/check_no_legacy_cross.py | |
| - name: Unit-test the cross-backend guard | |
| run: uv run --no-project python -m unittest ci.test_no_legacy_cross | |
| # clud force-reinstalls a pinned soldr as the global uv tool on every | |
| # launch, downgrading every other project's soldr. See FastLED/fbuild#1436. | |
| - name: Verify .clud/settings.json does not pin soldr | |
| run: uv run --no-project python -m unittest ci.test_clud_settings_soldr |