This is an automated email from the ASF dual-hosted git repository. blaginin pushed a commit to branch bash-push in repository https://gitbox.apache.org/repos/asf/datafusion.git
commit 645483f4cd3b52142a7768251415d9cec3b84dcb Author: blaginin <[email protected]> AuthorDate: Sat Nov 8 15:39:59 2025 +0000 MQ-compatible `check-files` --- .github/workflows/rust.yml | 124 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 97 insertions(+), 27 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index c57300eec0..128edab89b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -25,26 +25,39 @@ on: push: branches-ignore: - 'gh-readonly-queue/**' - paths-ignore: - - "docs/**" - - "**.md" - - ".github/ISSUE_TEMPLATE/**" - - ".github/pull_request_template.md" pull_request: - paths-ignore: - - "docs/**" - - "**.md" - - ".github/ISSUE_TEMPLATE/**" - - ".github/pull_request_template.md" merge_group: # manual trigger # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow + # + # Note, we use merge queue for this repo. If you'd like to add a new "required" check, that should be checked before + # the PR is merged, you should add your step to `rust-required-checks` workflow_dispatch: jobs: + # This job checks if heavy-weight jobs can be skipped, because only doc or non-code files were changed + # More on this: https://github.com/orgs/community/discussions/45899 + check-files: + runs-on: ubuntu-latest + outputs: + should_skip: ${{ steps.changed-files.outputs.all == '' }} + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c + id: changed-files + with: + filter: | + * + !**.md + !docs/** + !.github/ISSUE_TEMPLATE/** + !.github/pull_request_template.md + # Check crate compiles and base cargo check passes linux-build-lib: name: linux build test + needs: check-files + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -72,7 +85,8 @@ jobs: # subset of the features packages enabled. linux-datafusion-common-features: name: cargo check datafusion-common features - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -97,7 +111,8 @@ jobs: # subset of the features packages enabled. linux-datafusion-substrait-features: name: cargo check datafusion-substrait features - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -134,7 +149,8 @@ jobs: # subset of the features packages enabled. linux-datafusion-proto-features: name: cargo check datafusion-proto features - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -165,7 +181,8 @@ jobs: # subset of the features packages enabled. linux-cargo-check-datafusion: name: cargo check datafusion features - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -232,7 +249,8 @@ jobs: # subset of the features packages enabled. linux-cargo-check-datafusion-functions: name: cargo check datafusion-functions features - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -267,7 +285,8 @@ jobs: # Library and integration tests linux-test: name: cargo test (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -315,7 +334,8 @@ jobs: # datafusion-cli tests linux-test-datafusion-cli: name: cargo test datafusion-cli (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 @@ -344,7 +364,8 @@ jobs: linux-test-example: name: cargo examples (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -387,7 +408,8 @@ jobs: # Run `cargo test doc` (test documentation examples) linux-test-doc: name: cargo test doc (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -408,7 +430,8 @@ jobs: # Run `cargo doc` to ensure the rustdoc is clean linux-rustdoc: name: cargo doc - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -448,7 +471,8 @@ jobs: # verify that the benchmark queries return the correct results verify-benchmark-results: name: verify benchmark results (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -481,7 +505,8 @@ jobs: sqllogictest-postgres: name: "Run sqllogictest with Postgres runner" - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -519,7 +544,8 @@ jobs: sqllogictest-substrait: name: "Run sqllogictest in Substrait round-trip mode" - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -574,7 +600,8 @@ jobs: test-datafusion-pyarrow: name: cargo test pyarrow (amd64) - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust:bullseye # Use the bullseye tag image which comes with python3.9 @@ -598,6 +625,8 @@ jobs: vendor: name: Verify Vendored Code + needs: check-files + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -615,6 +644,8 @@ jobs: check-fmt: name: Check cargo fmt + needs: check-files + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -673,7 +704,8 @@ jobs: clippy: name: clippy - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -698,7 +730,8 @@ jobs: cargo-toml-formatting-checks: name: check Cargo.toml formatting - needs: linux-build-lib + needs: [linux-build-lib, check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -719,7 +752,8 @@ jobs: config-docs-check: name: check configs.md and ***_functions.md is up-to-date - needs: linux-build-lib + needs: [linux-build-lib] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -753,6 +787,8 @@ jobs: # - datafusion-cli msrv: name: Verify MSRV (Min Supported Rust Version) + needs: [check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest container: image: amd64/rust @@ -801,9 +837,43 @@ jobs: run: cargo msrv --output-format json --log-target stdout verify typos: name: Spell Check with Typos + needs: [check-files] + if: needs.check-files.outputs.should_skip != 'true' runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - uses: crate-ci/typos@07d900b8fa1097806b8adb6391b0d3e0ac2fdea7 # v1.39.0 + + rust-required-checks: + name: Validate Rust Required Checks + needs: [ linux-rustdoc, + linux-wasm-pack, + linux-build-lib, + macos-aarch64, + vendor, + check-fmt, + msrv, + linux-datafusion-common-features, + linux-datafusion-substrait-features, + linux-datafusion-proto-features, + linux-cargo-check-datafusion, + linux-cargo-check-datafusion-functions, + linux-test, + linux-test-example, + linux-test-doc, + verify-benchmark-results, + sqllogictest-postgres, + sqllogictest-substrait, + test-datafusion-pyarrow, + clippy, + cargo-toml-formatting-checks, + linux-test-datafusion-cli, + config-docs-check + ] + if: always() + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - run: echo '${{ toJSON(needs) }}' | jq -e 'all(.[]; .result == "success" or .result == "skipped")' --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
