You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "andygrove (via GitHub)" <gi...@apache.org> on 2026/07/17 19:20:21 UTC

[PR] ci: gate expensive workflows on lint by consolidating into rust.yml [datafusion-ballista]

andygrove opened a new pull request, #2087:
URL: https://github.com/apache/datafusion-ballista/pull/2087

   # Which issue does this PR close?
   
   <!-- No tracking issue; small CI infrastructure change. -->
   
   Closes #.
   
   # Rationale for this change
   
   Expensive CI workflows — TPC-H SF10, TPC-DS SF1, Docker build, and the Web TUI
   WASM build — ran on their own independent triggers, unrelated to the lint
   checks. GitHub Actions `needs:` only creates dependencies between jobs in the
   *same* workflow file, so a PR containing a `rustfmt` or `clippy` error still
   consumed the full benchmark/build budget before the lint failure surfaced.
   
   The goal of this PR is to make the lint suite (rustfmt + `cargo tomlfmt` +
   clippy) a hard gate that must pass before any expensive job starts, so lint
   errors fail fast and cheaply.
   
   # What changes are included in this PR?
   
   - Consolidate `tpch.yml`, `tpcds.yml`, `docker.yml`, and `web-tui.yml` into
     `rust.yml` as jobs (bodies copied verbatim) and delete those four files.
   - Add a small `lint-gate` aggregating job that `needs: [lint, clippy,
     cargo-toml-formatting-checks]`. Every expensive job — the four merged ones
     plus the existing heavy test jobs (`linux-test`, `linux-build-workspace`,
     `ballista-test`, `macos-test`, `verify-benchmark-results`) — now
     `needs: lint-gate`. A lint failure skips the gate, which skips all gated
     jobs, so no expensive work runs.
   - Leave fast jobs ungated for quick feedback: `build-lib` (cargo check),
     `rustdoc`, and `datafusion-proto-sync-check`.
   - Union the merged workflows' path filters onto `rust.yml`'s trigger (adds
     `dev/docker/**` and `dev/build-ballista-docker.sh`).
   - Restrict the workflow token to `permissions: contents: read`, and grant
     `build_docker` a job-level `packages: write` for its existing release-tag
     ghcr.io push.
   
   The **Python Release Build** (`build.yml`) is intentionally left separate: it
   triggers on `push: tags: [ "*-rc*" ]` (release artifacts) and `python/**`
   paths, so gating release builds behind Rust lint would be the wrong coupling.
   
   Tradeoff: for a passing PR, wall-clock increases slightly because the expensive
   jobs now wait for the clippy compile instead of running alongside it. That is
   the intended cost of a hard clippy gate.
   
   Notes for reviewers/INFRA:
   
   - Job `name:` strings are preserved, so individual required-check names are
     unchanged, but the checks now report under the **Ballista Rust** workflow
     rather than their old per-workflow names. Branch-protection required-checks
     may need to be confirmed/updated.
   - `actionlint` reports only pre-existing shellcheck/expression warnings that
     already exist on `main` in these same script blocks; the consolidation adds
     no new lint findings.
   
   # Are there any user-facing changes?
   
   No. This only changes CI orchestration.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org


Re: [PR] ci: gate expensive workflows on lint by consolidating into rust.yml [datafusion-ballista]

Posted by "andygrove (via GitHub)" <gi...@apache.org>.
andygrove closed pull request #2087: ci: gate expensive workflows on lint by consolidating into rust.yml
URL: https://github.com/apache/datafusion-ballista/pull/2087


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org