This is an automated email from the ASF dual-hosted git repository.
blaginin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-sandbox.git
The following commit(s) were added to refs/heads/main by this push:
new 645483f4c MQ-compatible `check-files`
645483f4c is described below
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 c57300eec..128edab89 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]