@@ -40,13 +40,14 @@ concurrency:
4040 group : ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
4141 cancel-in-progress : true
4242
43- env :
44- rust_msrv : " 1.87 "
43+ permissions :
44+ contents : read
4545
4646jobs :
4747 check :
4848 runs-on : ${{ matrix.os }}
4949 strategy :
50+ max-parallel : 15
5051 matrix :
5152 os :
5253 - ubuntu-latest
@@ -83,24 +84,13 @@ jobs:
8384 build :
8485 runs-on : ${{ matrix.os }}
8586 strategy :
87+ max-parallel : 15
8688 matrix :
8789 os :
8890 - ubuntu-latest
8991 - macos-latest
9092 - windows-latest
9193 steps :
92- - name : Maximize build space (Ubuntu)
93- if : matrix.os == 'ubuntu-latest'
94- uses : easimon/maximize-build-space@master
95- with :
96- remove-dotnet : " true"
97- remove-android : " true"
98- remove-haskell : " true"
99- remove-codeql : " true"
100- remove-docker-images : " true"
101- root-reserve-mb : 10240
102- temp-reserve-mb : 10240
103-
10494 - uses : actions/checkout@v6
10595
10696 - name : Setup Rust toolchain
@@ -120,6 +110,7 @@ jobs:
120110 build_with_no_default_features :
121111 runs-on : ${{ matrix.os }}
122112 strategy :
113+ max-parallel : 15
123114 matrix :
124115 os :
125116 - ubuntu-latest
@@ -137,26 +128,16 @@ jobs:
137128 - name : Build
138129 run : cargo build -p iceberg --no-default-features
139130
140- unit :
131+ tests :
141132 runs-on : ubuntu-latest
142133 strategy :
134+ max-parallel : 15
143135 matrix :
144136 test-suite :
145137 - { name: "default", args: "--all-targets --all-features --workspace" }
146138 - { name: "doc", args: "--doc --all-features --workspace" }
147- name : Unit Tests (${{ matrix.test-suite.name }})
139+ name : Tests (${{ matrix.test-suite.name }})
148140 steps :
149- - name : Maximize build space
150- uses : easimon/maximize-build-space@master
151- with :
152- remove-dotnet : " true"
153- remove-android : " true"
154- remove-haskell : " true"
155- remove-codeql : " true"
156- remove-docker-images : " true"
157- root-reserve-mb : 10240
158- temp-reserve-mb : 10240
159-
160141 - uses : actions/checkout@v6
161142
162143 - name : Setup Rust toolchain
@@ -172,8 +153,30 @@ jobs:
172153 with :
173154 key : ${{ matrix.test-suite.name }}
174155
175- - name : Test
176- run : cargo test --no-fail-fast ${{ matrix.test-suite.args }}
156+ - name : Install cargo-nextest
157+ if : matrix.test-suite.name == 'default'
158+ uses : taiki-e/install-action@v2
159+ with :
160+ tool : cargo-nextest
161+
162+ - name : Start Docker containers
163+ if : matrix.test-suite.name == 'default'
164+ run : make docker-up
165+
166+ - name : Run tests
167+ env :
168+ # Disable debug info to speed up compilation and reduce artifact size
169+ RUSTFLAGS : " -C debuginfo=0"
170+ run : |
171+ if [ "${{ matrix.test-suite.name }}" = "default" ]; then
172+ cargo nextest run ${{ matrix.test-suite.args }}
173+ else
174+ cargo test --no-fail-fast ${{ matrix.test-suite.args }}
175+ fi
176+
177+ - name : Stop Docker containers
178+ if : always() && matrix.test-suite.name == 'default'
179+ run : make docker-down
177180
178181 msrv :
179182 name : Verify MSRV
@@ -184,10 +187,13 @@ jobs:
184187 uses : arduino/setup-protoc@v3
185188 with :
186189 repo-token : ${{ secrets.GITHUB_TOKEN }}
190+ - name : Get MSRV
191+ id : get-msrv
192+ uses : ./.github/actions/get-msrv
187193 - name : Setup MSRV Rust toolchain
188194 uses : ./.github/actions/setup-builder
189195 with :
190- rust-version : ${{ env.rust_msrv }}
196+ rust-version : ${{ steps.get-msrv.outputs.msrv }}
191197 - name : Setup Nightly Rust toolchain
192198 uses : ./.github/actions/setup-builder
193199 - name : Check MSRV
0 commit comments