@@ -47,18 +47,46 @@ jobs:
4747 uses : apache/skywalking-eyes/header@v0.8.0
4848
4949 - name : Install cargo-deny
50- uses : taiki-e/install-action@v2
50+ uses : taiki-e/install-action@a6b2e2dcd845ddd7f509ce4f3ed3d922b80cc5d9 # v2.84.0
5151 with :
52- tool : cargo-deny@0.19.0
52+ tool : cargo-deny@0.19.6
5353
54- - name : Check dependency licenses (Apache-compatible)
55- run : cargo deny check licenses
54+ - name : Fetch locked dependencies
55+ run : cargo fetch --locked
56+
57+ - name : Check dependency policy
58+ run : cargo deny --locked --all-features check --warn unmaintained advisories licenses
59+
60+ - name : Verify dependency reports
61+ run : python3 scripts/dependencies.py verify
5662
5763 - name : Format
5864 run : cargo fmt --all -- --check
5965
6066 - name : Clippy
61- run : cargo clippy --all-targets --workspace --features fulltext,vortex -- -D warnings
67+ run : cargo clippy --locked --all-targets --workspace --features fulltext,vortex -- -D warnings
68+
69+ msrv :
70+ runs-on : ubuntu-latest
71+ env :
72+ PYO3_PYTHON : python3.11
73+ steps :
74+ - uses : actions/checkout@v7
75+
76+ - uses : actions/setup-python@v6
77+ with :
78+ python-version : " 3.11"
79+
80+ - name : Install Rust 1.91.0
81+ run : rustup toolchain install 1.91.0 --profile minimal
82+
83+ - name : Validate workspace MSRV metadata
84+ run : |
85+ cargo +1.91.0 metadata --locked --format-version 1 --no-deps |
86+ jq -e '.packages | all(.rust_version == "1.91.0")' >/dev/null
87+
88+ - name : Check workspace at MSRV
89+ run : cargo +1.91.0 check --locked --workspace --all-targets --all-features
6290
6391 build :
6492 runs-on : ${{ matrix.os }}
7199 steps :
72100 - uses : actions/checkout@v7
73101 - name : Build
74- run : cargo build --features fulltext,vortex
102+ run : cargo build --locked -- features fulltext,vortex
75103
76104 unit :
77105 runs-on : ${{ matrix.os }}
85113 - uses : actions/checkout@v7
86114
87115 - name : Test
88- run : cargo test -p paimon --all-targets --features fulltext,vortex
116+ run : cargo test --locked - p paimon --all-targets --features fulltext,vortex
89117 env :
90118 RUST_LOG : DEBUG
91119 RUST_BACKTRACE : full
95123 # catalog tests are likewise gated with `#[cfg(not(windows))]`).
96124 - name : Test paimon-rest-server
97125 if : runner.os != 'Windows'
98- run : cargo test -p paimon-rest-server --all-targets
126+ run : cargo test --locked - p paimon-rest-server --all-targets
99127 env :
100128 RUST_LOG : DEBUG
101129 RUST_BACKTRACE : full
@@ -150,7 +178,7 @@ jobs:
150178
151179 - name : Rust Integration Test
152180 if : matrix.suite == 'rust'
153- run : cargo test -p paimon-integration-tests --all-targets
181+ run : cargo test --locked - p paimon-integration-tests --all-targets
154182
155183 - name : Install lumina native library
156184 if : matrix.needs_lumina == true
@@ -161,26 +189,26 @@ jobs:
161189 - name : Core Lumina Native Build Test
162190 if : matrix.suite == 'lumina'
163191 run : >
164- cargo test -p paimon
192+ cargo test --locked - p paimon
165193 table::lumina_index_build_builder::tests::test_execute_writes_lumina_index_manifest
166194 --features fulltext,vortex
167195 -- --ignored --exact
168196
169197 - name : DataFusion Lumina Build Query E2E Test
170198 if : matrix.suite == 'lumina'
171199 run : >
172- cargo test -p paimon-datafusion
200+ cargo test --locked - p paimon-datafusion
173201 --features vortex
174202 vector_search_tests::test_lumina_build_then_vector_search_query
175203 -- --ignored --exact
176204
177205 - name : DataFusion Integration Test
178206 if : matrix.suite == 'datafusion'
179- run : cargo test -p paimon-datafusion --all-targets
207+ run : cargo test --locked - p paimon-datafusion --all-targets
180208
181209 - name : DataFusion Vortex Integration Test
182210 if : matrix.suite == 'datafusion'
183- run : cargo test -p paimon-datafusion --features vortex --test vortex_tables
211+ run : cargo test --locked - p paimon-datafusion --features vortex --test vortex_tables
184212
185213 - name : Install uv
186214 if : matrix.needs_uv == true
0 commit comments