Skip to content

Commit c4c6899

Browse files
committed
CI/CD: Use LLVM-11 for code coverage.
1 parent 7514f7a commit c4c6899

File tree

4 files changed

+91
-24
lines changed

4 files changed

+91
-24
lines changed

.github/workflows/ci.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ jobs:
317317
- uses: actions/checkout@v2
318318

319319
- if: ${{ !contains(matrix.host_os, 'windows') }}
320-
run: mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }}
320+
run: RING_COVERAGE=1 mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }}
321321

322322
- uses: actions-rs/toolchain@v1
323323
with:
@@ -329,10 +329,8 @@ jobs:
329329
run: echo "DEVELOPER_DIR=/Applications/Xcode_12.2.app/Contents/Developer" >> $GITHUB_ENV
330330

331331
- if: ${{ !contains(matrix.host_os, 'windows') }}
332-
env:
333-
RING_COVERAGE: 1
334332
run: |
335-
mk/cargo.sh +${{ matrix.rust_channel }} test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }}
333+
RING_COVERAGE=1 mk/cargo.sh +${{ matrix.rust_channel }} test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }}
336334
337335
- uses: codecov/codecov-action@v1
338336
with:

mk/cargo.sh

+25-19
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,28 @@ for arg in $*; do
3838
esac
3939
done
4040

41+
# See comments in install-build-tools.sh.
42+
llvm_version=10
43+
if [ -n "${RING_COVERAGE-}" ]; then
44+
llvm_version=11
45+
fi
46+
4147
case $target in
4248
aarch64-linux-android)
4349
export CC_aarch64_linux_android=$android_tools/aarch64-linux-android21-clang
4450
export AR_aarch64_linux_android=$android_tools/aarch64-linux-android-ar
4551
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$android_tools/aarch64-linux-android21-clang
4652
;;
4753
aarch64-unknown-linux-gnu)
48-
export CC_aarch64_unknown_linux_gnu=clang-10
49-
export AR_aarch64_unknown_linux_gnu=llvm-ar-10
54+
export CC_aarch64_unknown_linux_gnu=clang-$llvm_version
55+
export AR_aarch64_unknown_linux_gnu=llvm-ar-$llvm_version
5056
export CFLAGS_aarch64_unknown_linux_gnu="--sysroot=/usr/aarch64-linux-gnu"
5157
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
5258
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_aarch64"
5359
;;
5460
aarch64-unknown-linux-musl)
55-
export CC_aarch64_unknown_linux_musl=clang-10
56-
export AR_aarch64_unknown_linux_musl=llvm-ar-10
61+
export CC_aarch64_unknown_linux_musl=clang-$llvm_version
62+
export AR_aarch64_unknown_linux_musl=llvm-ar-$llvm_version
5763
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained"
5864
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_aarch64"
5965
;;
@@ -69,30 +75,30 @@ case $target in
6975
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$android_tools/armv7a-linux-androideabi18-clang
7076
;;
7177
armv7-unknown-linux-musleabihf)
72-
export CC_armv7_unknown_linux_musleabihf=clang-10
73-
export AR_armv7_unknown_linux_musleabihf=llvm-ar-10
78+
export CC_armv7_unknown_linux_musleabihf=clang-$llvm_version
79+
export AR_armv7_unknown_linux_musleabihf=llvm-ar-$llvm_version
7480
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS="$rustflags_self_contained"
7581
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="$qemu_arm"
7682
;;
7783
i686-unknown-linux-gnu)
78-
export CC_i686_unknown_linux_gnu=clang-10
79-
export AR_i686_unknown_linux_gnu=llvm-ar-10
80-
export CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang-10
84+
export CC_i686_unknown_linux_gnu=clang-$llvm_version
85+
export AR_i686_unknown_linux_gnu=llvm-ar-$llvm_version
86+
export CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang-$llvm_version
8187
;;
8288
i686-unknown-linux-musl)
83-
export CC_i686_unknown_linux_musl=clang-10
84-
export AR_i686_unknown_linux_musl=llvm-ar-10
85-
export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER=clang-10
89+
export CC_i686_unknown_linux_musl=clang-$llvm_version
90+
export AR_i686_unknown_linux_musl=llvm-ar-$llvm_version
91+
export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER=clang-$llvm_version
8692
;;
8793
x86_64-unknown-linux-musl)
88-
export CC_x86_64_unknown_linux_musl=clang-10
89-
export AR_x86_64_unknown_linux_musl=llvm-ar-10
90-
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=clang-10
94+
export CC_x86_64_unknown_linux_musl=clang-$llvm_version
95+
export AR_x86_64_unknown_linux_musl=llvm-ar-$llvm_version
96+
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=clang-$llvm_version
9197
;;
9298
wasm32-unknown-unknown)
9399
# The first two are only needed for when the "wasm_c" feature is enabled.
94-
export CC_wasm32_unknown_unknown=clang-10
95-
export AR_wasm32_unknown_unknown=llvm-ar-10
100+
export CC_wasm32_unknown_unknown=clang-$llvm_version
101+
export AR_wasm32_unknown_unknown=llvm-ar-$llvm_version
96102
export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner
97103
;;
98104
*)
@@ -131,9 +137,9 @@ cargo "$@"
131137
if [ -n "${RING_COVERAGE-}" ]; then
132138
while read executable; do
133139
basename=$(basename "$executable")
134-
llvm-profdata-10 merge -sparse ""$coverage_dir"/$basename.profraw" -o "$coverage_dir"/$basename.profdata
140+
llvm-profdata-$llvm_version merge -sparse ""$coverage_dir"/$basename.profraw" -o "$coverage_dir"/$basename.profdata
135141
mkdir -p "$coverage_dir"/reports
136-
llvm-cov-10 export \
142+
llvm-cov-$llvm_version export \
137143
--instr-profile "$coverage_dir"/$basename.profdata \
138144
--format lcov \
139145
"$executable" \

mk/install-build-tools.sh

+10-1
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,14 @@ case $target in
8080
esac
8181

8282
if [ -n "$use_clang" ]; then
83-
install_packages clang-10 llvm-10
83+
llvm_version=10
84+
if [ -n "${RING_COVERAGE-}" ]; then
85+
# https://github.com/rust-lang/rust/pull/79365 upgraded the coverage file
86+
# format to one that only LLVM 11+ can use
87+
llvm_version=11
88+
sudo apt-key add mk/llvm-snapshot.gpg.key
89+
sudo add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-$llvm_version main"
90+
sudo apt-get update
91+
fi
92+
install_packages clang-$llvm_version llvm-$llvm_version
8493
fi

mk/llvm-snapshot.gpg.key

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
Version: GnuPG v1.4.12 (GNU/Linux)
3+
Comment: See https://apt.llvm.org/.
4+
Comment: Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421
5+
6+
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
52+
bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw==
53+
=j+4q
54+
-----END PGP PUBLIC KEY BLOCK-----

0 commit comments

Comments
 (0)