2525 push :
2626 branches-ignore :
2727 - ' gh-readonly-queue/**'
28+ paths-ignore :
29+ - " docs/**"
30+ - " **.md"
31+ - " .github/ISSUE_TEMPLATE/**"
32+ - " .github/pull_request_template.md"
2833 pull_request :
34+ paths-ignore :
35+ - " docs/**"
36+ - " **.md"
37+ - " .github/ISSUE_TEMPLATE/**"
38+ - " .github/pull_request_template.md"
2939 merge_group :
3040 # manual trigger
3141 # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
32- #
33- # Note, we use merge queue for this repo. If you'd like to add a new "required" check, that should be checked before
34- # the PR is merged, you should add your step to `rust-required-checks`
3542 workflow_dispatch :
3643
3744jobs :
38- # This job checks if heavy-weight jobs can be skipped, because only doc or non-code files were changed
39- # More on this: https://github.com/orgs/community/discussions/45899
40- pre-job :
41- runs-on : ubuntu-latest
42- outputs :
43- should_skip : ${{ steps.skip_check.outputs.should_skip }}
44- steps :
45- - id : skip_check
46- uses : fkirc/skip-duplicate-actions@v5
47- with :
48- concurrent_skipping : ' never'
49- skip_after_successful_duplicate : ' false'
50- paths_ignore : ' ["**.md", "docs/**", ".github/ISSUE_TEMPLATE/**", ".github/pull_request_template.md"]'
51-
5245 # Check crate compiles and base cargo check passes
5346 linux-build-lib :
5447 name : linux build test
55- needs : pre-job
56- if : needs.pre-job.outputs.should_skip != 'true'
5748 runs-on : ubuntu-latest
5849 container :
5950 image : amd64/rust
8172 # subset of the features packages enabled.
8273 linux-datafusion-common-features :
8374 name : cargo check datafusion-common features
84- needs : [linux-build-lib, pre-job]
85- if : needs.pre-job.outputs.should_skip != 'true'
75+ needs : linux-build-lib
8676 runs-on : ubuntu-latest
8777 container :
8878 image : amd64/rust
10797 # subset of the features packages enabled.
10898 linux-datafusion-substrait-features :
10999 name : cargo check datafusion-substrait features
110- needs : [linux-build-lib, pre-job]
111- if : needs.pre-job.outputs.should_skip != 'true'
100+ needs : linux-build-lib
112101 runs-on : ubuntu-latest
113102 container :
114103 image : amd64/rust
@@ -145,8 +134,7 @@ jobs:
145134 # subset of the features packages enabled.
146135 linux-datafusion-proto-features :
147136 name : cargo check datafusion-proto features
148- needs : [linux-build-lib, pre-job]
149- if : needs.pre-job.outputs.should_skip != 'true'
137+ needs : linux-build-lib
150138 runs-on : ubuntu-latest
151139 container :
152140 image : amd64/rust
@@ -177,8 +165,7 @@ jobs:
177165 # subset of the features packages enabled.
178166 linux-cargo-check-datafusion :
179167 name : cargo check datafusion features
180- needs : [linux-build-lib, pre-job]
181- if : needs.pre-job.outputs.should_skip != 'true'
168+ needs : linux-build-lib
182169 runs-on : ubuntu-latest
183170 container :
184171 image : amd64/rust
@@ -245,8 +232,7 @@ jobs:
245232 # subset of the features packages enabled.
246233 linux-cargo-check-datafusion-functions :
247234 name : cargo check datafusion-functions features
248- needs : [linux-build-lib, pre-job]
249- if : needs.pre-job.outputs.should_skip != 'true'
235+ needs : linux-build-lib
250236 runs-on : ubuntu-latest
251237 container :
252238 image : amd64/rust
@@ -281,8 +267,7 @@ jobs:
281267 # Library and integration tests
282268 linux-test :
283269 name : cargo test (amd64)
284- needs : [linux-build-lib, pre-job]
285- if : needs.pre-job.outputs.should_skip != 'true'
270+ needs : linux-build-lib
286271 runs-on : ubuntu-latest
287272 container :
288273 image : amd64/rust
@@ -298,8 +283,8 @@ jobs:
298283 - name : Rust Dependency Cache
299284 uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
300285 with :
301- save-if : ${{ github.ref_name == 'main' }}
302- shared-key : " amd-ci"
286+ save-if : ${{ github.ref_name == 'main' }}
287+ shared-key : " amd-ci"
303288 - name : Run tests (excluding doctests and datafusion-cli)
304289 env :
305290 RUST_BACKTRACE : 1
@@ -321,8 +306,7 @@ jobs:
321306 # datafusion-cli tests
322307 linux-test-datafusion-cli :
323308 name : cargo test datafusion-cli (amd64)
324- needs : [linux-build-lib, pre-job]
325- if : needs.pre-job.outputs.should_skip != 'true'
309+ needs : linux-build-lib
326310 runs-on : ubuntu-latest
327311 # should be uncommented once https://github.com/apache/datafusion/pull/16644 is merged
328312 # and cache should be added
@@ -350,8 +334,7 @@ jobs:
350334
351335 linux-test-example :
352336 name : cargo examples (amd64)
353- needs : [linux-build-lib, pre-job]
354- if : needs.pre-job.outputs.should_skip != 'true'
337+ needs : linux-build-lib
355338 runs-on : ubuntu-latest
356339 container :
357340 image : amd64/rust
@@ -381,8 +364,7 @@ jobs:
381364 # Run `cargo test doc` (test documentation examples)
382365 linux-test-doc :
383366 name : cargo test doc (amd64)
384- needs : [linux-build-lib, pre-job]
385- if : needs.pre-job.outputs.should_skip != 'true'
367+ needs : linux-build-lib
386368 runs-on : ubuntu-latest
387369 container :
388370 image : amd64/rust
@@ -403,8 +385,7 @@ jobs:
403385 # Run `cargo doc` to ensure the rustdoc is clean
404386 linux-rustdoc :
405387 name : cargo doc
406- needs : [linux-build-lib, pre-job]
407- if : needs.pre-job.outputs.should_skip != 'true'
388+ needs : linux-build-lib
408389 runs-on : ubuntu-latest
409390 container :
410391 image : amd64/rust
@@ -442,8 +423,7 @@ jobs:
442423 # verify that the benchmark queries return the correct results
443424 verify-benchmark-results :
444425 name : verify benchmark results (amd64)
445- needs : [linux-build-lib, pre-job]
446- if : needs.pre-job.outputs.should_skip != 'true'
426+ needs : linux-build-lib
447427 runs-on : ubuntu-latest
448428 container :
449429 image : amd64/rust
@@ -476,8 +456,7 @@ jobs:
476456
477457 sqllogictest-postgres :
478458 name : " Run sqllogictest with Postgres runner"
479- needs : [linux-build-lib, pre-job]
480- if : needs.pre-job.outputs.should_skip != 'true'
459+ needs : linux-build-lib
481460 runs-on : ubuntu-latest
482461 container :
483462 image : amd64/rust
@@ -515,8 +494,7 @@ jobs:
515494
516495 sqllogictest-substrait :
517496 name : " Run sqllogictest in Substrait round-trip mode"
518- needs : [linux-build-lib, pre-job]
519- if : needs.pre-job.outputs.should_skip != 'true'
497+ needs : linux-build-lib
520498 runs-on : ubuntu-latest
521499 container :
522500 image : amd64/rust
@@ -587,8 +565,7 @@ jobs:
587565
588566 test-datafusion-pyarrow :
589567 name : cargo test pyarrow (amd64)
590- needs : [linux-build-lib, pre-job]
591- if : needs.pre-job.outputs.should_skip != 'true'
568+ needs : linux-build-lib
592569 runs-on : ubuntu-latest
593570 container :
594571 image : amd64/rust:bullseye # Use the bullseye tag image which comes with python3.9
@@ -612,8 +589,6 @@ jobs:
612589
613590 vendor :
614591 name : Verify Vendored Code
615- needs : pre-job
616- if : needs.pre-job.outputs.should_skip != 'true'
617592 runs-on : ubuntu-latest
618593 container :
619594 image : amd64/rust
@@ -631,8 +606,6 @@ jobs:
631606
632607 check-fmt :
633608 name : Check cargo fmt
634- needs : pre-job
635- if : needs.pre-job.outputs.should_skip != 'true'
636609 runs-on : ubuntu-latest
637610 container :
638611 image : amd64/rust
@@ -691,8 +664,7 @@ jobs:
691664
692665 clippy :
693666 name : clippy
694- needs : [linux-build-lib, pre-job]
695- if : needs.pre-job.outputs.should_skip != 'true'
667+ needs : linux-build-lib
696668 runs-on : ubuntu-latest
697669 container :
698670 image : amd64/rust
@@ -717,8 +689,7 @@ jobs:
717689
718690 cargo-toml-formatting-checks :
719691 name : check Cargo.toml formatting
720- needs : [linux-build-lib, pre-job]
721- if : needs.pre-job.outputs.should_skip != 'true'
692+ needs : linux-build-lib
722693 runs-on : ubuntu-latest
723694 container :
724695 image : amd64/rust
@@ -739,8 +710,7 @@ jobs:
739710
740711 config-docs-check :
741712 name : check configs.md and ***_functions.md is up-to-date
742- needs : [linux-build-lib]
743- if : needs.pre-job.outputs.should_skip != 'true'
713+ needs : linux-build-lib
744714 runs-on : ubuntu-latest
745715 container :
746716 image : amd64/rust
@@ -774,8 +744,6 @@ jobs:
774744 # - datafusion-cli
775745 msrv :
776746 name : Verify MSRV (Min Supported Rust Version)
777- needs : [pre-job]
778- if : needs.pre-job.outputs.should_skip != 'true'
779747 runs-on : ubuntu-latest
780748 container :
781749 image : amd64/rust
@@ -824,44 +792,9 @@ jobs:
824792 run : cargo msrv --output-format json --log-target stdout verify
825793 typos :
826794 name : Spell Check with Typos
827- needs : [pre-job]
828- if : needs.pre-job.outputs.should_skip != 'true'
829795 runs-on : ubuntu-latest
830796 steps :
831797 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
832798 with :
833799 persist-credentials : false
834800 - uses : crate-ci/typos@v1
835-
836- rust-required-checks :
837- name : Validate Rust Required Checks
838- needs : [ linux-rustdoc,
839- linux-wasm-pack,
840- linux-build-lib,
841- macos-aarch64,
842- vendor,
843- check-fmt,
844- msrv,
845- linux-datafusion-common-features,
846- linux-datafusion-substrait-features,
847- linux-datafusion-proto-features,
848- linux-cargo-check-datafusion,
849- linux-cargo-check-datafusion-functions,
850- linux-test,
851- linux-test-example,
852- linux-test-doc,
853- verify-benchmark-results,
854- sqllogictest-postgres,
855- sqllogictest-substrait,
856- test-datafusion-pyarrow,
857- clippy,
858- cargo-toml-formatting-checks,
859- linux-test-datafusion-cli,
860- config-docs-check
861- ]
862- if : always()
863- runs-on : ubuntu-latest
864- steps :
865- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
866- - run : echo '${{ toJSON(needs) }}' | jq -e 'all(.[]; .result == "success" or .result == "skipped")'
867-
0 commit comments