@@ -118,14 +118,8 @@ jobs:
118118 rustc : beta
119119 notest_cuda_compilers : clang++
120120 extra_desc : cuda12.8
121- no_coverage : true
122121 env :
123122 RUST_BACKTRACE : 1
124- COVERAGE_REPORT_DIR : " target/debug"
125- COVERAGE_REPORT_FILE : " target/debug/lcov.info"
126- BINARY_DIR : " target/debug"
127- GRCOV_IGNORE_OPTION : ' --ignore build.rs --ignore "/*" --ignore "[a-zA-Z]:/*"'
128- GRCOV_EXCLUDE_OPTION : ' --excl-br-line "^\s*((debug_)?assert(_eq|_ne)?!|#\[derive\()"'
129123 NOTEST_CUDA_COMPILERS : ${{ matrix.notest_cuda_compilers || '' }}
130124 CARGO_PROFILE_DEV_DEBUG : ' 0' # save disk space
131125 steps :
@@ -139,7 +133,6 @@ jobs:
139133 uses : ./.github/actions/rust-toolchain
140134 with :
141135 toolchain : ${{ matrix.rustc }}
142- components : llvm-tools-preview
143136
144137 - if : ${{ contains(matrix.os, 'ubuntu') }}
145138 name : Install gcc & clang for tests
@@ -164,39 +157,6 @@ jobs:
164157 with :
165158 cuda-version : ${{ matrix.cuda }}
166159
167- - name : " `grcov` ~ install"
168- if : ${{ ! matrix.no_coverage }}
169- shell : bash
170- run : |
171- GRCOV_VERSION="0.10.7"
172- if [[ "$RUNNER_OS" == "Windows" ]]; then
173- TARGET="x86_64-pc-windows-msvc"
174- EXT="zip"
175- elif [[ "$RUNNER_OS" == "macOS" && "$RUNNER_ARCH" == "ARM64" ]]; then
176- TARGET="aarch64-apple-darwin"
177- EXT="tar.bz2"
178- elif [[ "$RUNNER_OS" == "macOS" ]]; then
179- TARGET="x86_64-apple-darwin"
180- EXT="tar.bz2"
181- else
182- TARGET="x86_64-unknown-linux-musl"
183- EXT="tar.bz2"
184- fi
185- URL="https://github.com/mozilla/grcov/releases/download/v${GRCOV_VERSION}/grcov-${TARGET}.${EXT}"
186- curl -sL "$URL" -o "grcov.${EXT}"
187- if [[ "$EXT" == "zip" ]]; then
188- unzip -q "grcov.${EXT}" -d "$HOME/.cargo/bin/"
189- else
190- tar -xjf "grcov.${EXT}" -C "$HOME/.cargo/bin/"
191- fi
192-
193- - name : Create config for testing
194- if : ${{ ! matrix.no_coverage }}
195- run : |
196- mkdir -p .cargo
197- echo '[env]
198- LLVM_PROFILE_FILE = { value = "target/debug/coverage/default-%p-%8m.profraw", relative = true }' >> .cargo/config.toml
199-
200160 - if : ${{ matrix.cuda != '' && runner.os == 'Linux' }}
201161 name : Free disk space for CUDA tests
202162 run : |
@@ -208,45 +168,13 @@ jobs:
208168 env :
209169 CARGO_INCREMENTAL : " 0"
210170 RUSTC_WRAPPER : " "
211- RUSTFLAGS : " -Cinstrument-coverage -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off"
212171
213172 - name : Upload failure
214173 if : failure()
215174 uses : ./.github/actions/artifact_failure
216175 with :
217176 name : test-${{ matrix.os }}-${{ matrix.rustc || 'stable' }}-${{ matrix.extra_desc }}
218177
219- # coverage:
220- - name : Display coverage files
221- if : ${{ ! matrix.no_coverage }}
222- shell : bash
223- run :
224- grcov . -s . --binary-path $BINARY_DIR --output-type files $GRCOV_IGNORE_OPTION $GRCOV_EXCLUDE_OPTION | sort --unique
225-
226- - name : Generate coverage data (via `grcov`)
227- if : ${{ ! matrix.no_coverage }}
228- id : coverage
229- shell : bash
230- run : |
231- mkdir -p "${COVERAGE_REPORT_DIR}"
232- grcov . -s . --binary-path $BINARY_DIR --output-type lcov --output-path "${COVERAGE_REPORT_FILE}" --branch $GRCOV_IGNORE_OPTION $GRCOV_EXCLUDE_OPTION
233- echo "report=${COVERAGE_REPORT_FILE}" >> $GITHUB_OUTPUT
234-
235- - name : Upload coverage results (to Codecov.io)
236- if : ${{ ! matrix.no_coverage }}
237- uses : codecov/codecov-action@v5
238- with :
239- files : ${{ steps.coverage.outputs.report }}
240- # # flags: IntegrationTests, UnitTests, ${{ steps.vars.outputs.CODECOV_FLAGS }}
241- flags : ${{ steps.vars.outputs.CODECOV_FLAGS }}
242- name : codecov-umbrella-${{ matrix.os }}-rust_${{ matrix.rustc || 'stable' }}-${{ matrix.extra_desc }}
243- fail_ci_if_error : true
244- # verbose: true
245- env :
246- CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
247-
248-
249-
250178 build :
251179 name : build ${{ matrix.binary || 'sccache' }} ${{ matrix.target }}
252180 runs-on : ${{ matrix.os }}
@@ -259,16 +187,7 @@ jobs:
259187 - os : ubuntu-22.04
260188 target : x86_64-unknown-linux-musl
261189 container : ' {"image": "messense/rust-musl-cross:x86_64-musl"}'
262- - os : ubuntu-22.04
263- target : s390x-unknown-linux-musl
264- container : ' {"image": "messense/rust-musl-cross:s390x-musl"}'
265- lto : " false"
266- - os : ubuntu-22.04
267- target : s390x-unknown-linux-gnu
268- - os : ubuntu-22.04
269- target : riscv64gc-unknown-linux-musl
270- container : ' {"image": "messense/rust-musl-cross:riscv64gc-musl"}'
271- lto : " false"
190+ # s390x, riscv64, armv7, i686 removed from Vercel fork (aws-lc-sys cross-compilation issues)
272191 - os : ubuntu-22.04
273192 binary : sccache-dist
274193 extra_args : --no-default-features --features="dist-server"
@@ -277,12 +196,6 @@ jobs:
277196 - os : ubuntu-22.04
278197 target : aarch64-unknown-linux-musl
279198 container : ' {"image": "messense/rust-musl-cross:aarch64-musl"}'
280- - os : ubuntu-22.04
281- target : armv7-unknown-linux-musleabi
282- container : ' {"image": "messense/rust-musl-cross:armv7-musleabi"}'
283- - os : ubuntu-22.04
284- target : i686-unknown-linux-musl
285- container : ' {"image": "messense/rust-musl-cross:i686-musl"}'
286199 - os : macos-14
287200 target : aarch64-apple-darwin
288201 macosx_deployment_target : 11.0
@@ -306,48 +219,7 @@ jobs:
306219 target : ${{ matrix.target }}
307220 if : ${{ !matrix.container }}
308221
309- - name : Install s390x cross-compilation toolchain
310- if : ${{ matrix.target == 's390x-unknown-linux-gnu' }}
311- run : |
312- sudo apt-get update
313- sudo apt-get install -y gcc-s390x-linux-gnu g++-s390x-linux-gnu
314- mkdir -p .cargo
315- cat >> .cargo/config.toml <<EOF
316- [target.s390x-unknown-linux-gnu]
317- linker = "s390x-linux-gnu-gcc"
318- EOF
319-
320- - name : Install rust-src for s390x-musl
321- if : ${{ matrix.target == 's390x-unknown-linux-musl' }}
322- run : |
323- # Remove corrupted nightly toolchain if it exists
324- rustup toolchain uninstall nightly || true
325- # Clean up any leftover files
326- rm -rf ~/.rustup/toolchains/nightly-* || true
327- # Install fresh nightly with minimal profile
328- rustup toolchain install nightly --profile minimal
329- rustup component add rust-src --toolchain nightly
330-
331- - name : fix build openssl error on s390x
332- if : ${{ matrix.target == 's390x-unknown-linux-musl' }}
333- run : |
334- # see https://github.com/openssl/openssl/issues/27323
335- echo CFLAGS="-march=z10 -mzarch" >> $GITHUB_ENV
336- echo CXXFLAGS="$CFLAGS" >> $GITHUB_ENV
337- echo RUSTFLAGS="-C target-cpu=z10" >> $GITHUB_ENV
338-
339- - name : Build (s390x-musl with build-std)
340- if : ${{ matrix.target == 's390x-unknown-linux-musl' }}
341- run : cargo +nightly build --locked --release --bin ${{ matrix.binary || 'sccache' }} --target ${{ matrix.target }} --features=openssl/vendored ${{ matrix.extra_args }} -Zbuild-std
342- env :
343- MACOSX_DEPLOYMENT_TARGET : ${{ matrix.macosx_deployment_target }}
344- DEVELOPER_DIR : ${{ matrix.developer_dir }}
345- SDKROOT : ${{ matrix.sdkroot }}
346- RUSTFLAGS : ${{ env.RUSTFLAGS || matrix.rustflags }}
347- CARGO_PROFILE_RELEASE_LTO : ${{ matrix.lto || 'true' }}
348-
349222 - name : Build
350- if : ${{ matrix.target != 's390x-unknown-linux-musl' }}
351223 run : cargo build --locked --release --bin ${{ matrix.binary || 'sccache' }} --target ${{ matrix.target }} --features=openssl/vendored ${{ matrix.extra_args }}
352224 env :
353225 MACOSX_DEPLOYMENT_TARGET : ${{ matrix.macosx_deployment_target }}
@@ -372,67 +244,7 @@ jobs:
372244 if-no-files-found : error
373245
374246
375- test_freebsd :
376- name : test freebsd-15.0 rust stable
377- runs-on : ${{ matrix.job.os }}
378- timeout-minutes : 70
379- strategy :
380- fail-fast : false
381- matrix :
382- job :
383- - { os: ubuntu-22.04 }
384- steps :
385- - uses : actions/checkout@v5
386- - name : Prepare, build and test
387- uses : vmactions/freebsd-vm@v1
388- with :
389- mem : 8192
390- usesh : true
391- sync : rsync
392- copyback : false
393- prepare : pkg install -y ca_root_nss curl gmake gtar pot sudo
394- run : |
395- #####################################################################################
396- ### Prepare, build, and test
397- #####################################################################################
398- ### based on ref: <https://github.com/rust-lang/rustup/pull/2783>
399- ### and on ref: <https://github.com/uutils/coreutils/commit/86c610a84b8b6c>
400- ### * NOTE: All steps need to be run in this block, otherwise, we are operating back
401- ### on the mac host.
402- set -exo pipefail
403- #
404- ### Basic user setup ################################################################
405- TEST_USER=tester
406- TEST_USER_HOME="/opt/$TEST_USER"
407- REPO_NAME=${GITHUB_WORKSPACE##*/}
408- WORKSPACE_PARENT="/home/runner/work/${REPO_NAME}"
409- WORKSPACE="${WORKSPACE_PARENT}/${REPO_NAME}"
410- export WORKSPACE
411- #
412- mkdir -p "$TEST_USER_HOME"
413- pw adduser -n "$TEST_USER" -d "$TEST_USER_HOME" -c "Tester" -h -
414- chown -R "$TEST_USER":"$TEST_USER" "$TEST_USER_HOME"
415- chown -R "$TEST_USER":"$TEST_USER" "/$WORKSPACE_PARENT"/
416- cat > /usr/local/etc/sudoers.d/wheel<<EOF
417- $TEST_USER ALL=(ALL) NOPASSWD: ALL
418- EOF
419- #
420- ### Install rust stable from rustup ################################################
421- su "$TEST_USER" -c "/bin/sh -exo pipefail" <<"EOH"
422- whoami
423- echo "$HOME"
424- fetch -o /tmp/rustup.sh https://sh.rustup.rs
425- sh /tmp/rustup.sh -y --profile=minimal
426- ### Run tests #######################################################################
427- . "$HOME/.cargo/env"
428- "$WORKSPACE/scripts/freebsd-ci-test.sh"
429- EOH
430- # end
431- - name : Upload failure
432- if : failure()
433- uses : ./.github/actions/artifact_failure
434- with :
435- name : test-freebsd-15.0-stable
247+ # test_freebsd removed from Vercel fork
436248
437249 release :
438250 name : release
0 commit comments