diff options
Diffstat (limited to '.github/workflows/ci.generate.ts')
-rwxr-xr-x | .github/workflows/ci.generate.ts | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index 021c18425..87fcecc96 100755 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -86,7 +86,7 @@ ${installPkgsCommand} || echo 'Failed. Trying again.' && sudo apt-get clean && s (yes '' | sudo update-alternatives --force --all) > /dev/null 2> /dev/null || true echo "Decompressing sysroot..." -wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20240207/sysroot-\`uname -m\`.tar.xz -O /tmp/sysroot.tar.xz +wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20240527/sysroot-\`uname -m\`.tar.xz -O /tmp/sysroot.tar.xz cd / xzcat /tmp/sysroot.tar.xz | sudo tar -x sudo mount --rbind /dev /sysroot/dev @@ -95,21 +95,23 @@ sudo mount --rbind /home /sysroot/home sudo mount -t proc /proc /sysroot/proc cd -if [[ \`uname -m\` == "aarch64" ]]; then - echo "Copying libdl.a" - sudo cp /sysroot/usr/lib/aarch64-linux-gnu/libdl.a /sysroot/lib/aarch64-linux-gnu/libdl.a - echo "Copying libdl.so" - sudo cp /sysroot/lib/aarch64-linux-gnu/libdl.so.2 /sysroot/lib/aarch64-linux-gnu/libdl.so -else - echo "Copying libdl.a" - sudo cp /sysroot/usr/lib/x86_64-linux-gnu/libdl.a /sysroot/lib/x86_64-linux-gnu/libdl.a - echo "Copying libdl.so" - sudo cp /sysroot/lib/x86_64-linux-gnu/libdl.so.2 /sysroot/lib/x86_64-linux-gnu/libdl.so -fi +echo "Done." # Configure the build environment. Both Rust and Clang will produce # llvm bitcode only, so we can use lld's incremental LTO support. -cat >> $GITHUB_ENV << __0 + +# Load the sysroot's env vars +echo "sysroot env:" +cat /sysroot/.env +. /sysroot/.env + +# Important notes: +# 1. -ldl seems to be required to avoid a failure in FFI tests. This flag seems +# to be in the Rust default flags in the smoketest, so uncertain why we need +# to be explicit here. +# 2. RUSTFLAGS and RUSTDOCFLAGS must be specified, otherwise the doctests fail +# to build because the object formats are not compatible. +echo " CARGO_PROFILE_BENCH_INCREMENTAL=false CARGO_PROFILE_BENCH_LTO=false CARGO_PROFILE_RELEASE_INCREMENTAL=false @@ -118,28 +120,27 @@ RUSTFLAGS<<__1 -C linker-plugin-lto=true -C linker=clang-${llvmVersion} -C link-arg=-fuse-ld=lld-${llvmVersion} - -C link-arg=--sysroot=/sysroot -C link-arg=-ldl -C link-arg=-Wl,--allow-shlib-undefined -C link-arg=-Wl,--thinlto-cache-dir=$(pwd)/target/release/lto-cache -C link-arg=-Wl,--thinlto-cache-policy,cache_size_bytes=700m --cfg tokio_unstable - \${{ env.RUSTFLAGS }} + $RUSTFLAGS __1 RUSTDOCFLAGS<<__1 -C linker-plugin-lto=true -C linker=clang-${llvmVersion} -C link-arg=-fuse-ld=lld-${llvmVersion} - -C link-arg=--sysroot=/sysroot -C link-arg=-ldl -C link-arg=-Wl,--allow-shlib-undefined -C link-arg=-Wl,--thinlto-cache-dir=$(pwd)/target/release/lto-cache -C link-arg=-Wl,--thinlto-cache-policy,cache_size_bytes=700m - \${{ env.RUSTFLAGS }} + --cfg tokio_unstable + $RUSTFLAGS __1 CC=/usr/bin/clang-${llvmVersion} -CFLAGS=-flto=thin --sysroot=/sysroot -__0`, +CFLAGS=-flto=thin $CFLAGS +" > $GITHUB_ENV`, }; const installBenchTools = "./tools/install_prebuilt.js wrk hyperfine"; @@ -701,6 +702,24 @@ const ci = { ].join("\n"), }, { + // Run a minimal check to ensure that binary is not corrupted, regardless + // of our build mode + name: "Check deno binary", + if: "matrix.job == 'test'", + run: + 'target/${{ matrix.profile }}/deno eval "console.log(1+2)" | grep 3', + env: { + NO_COLOR: 1, + }, + }, + { + // Verify that the binary actually works in the Ubuntu-16.04 sysroot. + name: "Check deno binary (in sysroot)", + if: "matrix.job == 'test' && matrix.use_sysroot", + run: + 'sudo chroot /sysroot "$(pwd)/target/${{ matrix.profile }}/deno" --version', + }, + { name: "Upload PR artifact (linux)", if: [ "matrix.job == 'test' &&", @@ -836,25 +855,6 @@ const ci = { run: "cargo test --release --locked", }, { - // Since all tests are skipped when we're building a tagged commit - // this is a minimal check to ensure that binary is not corrupted - name: "Check deno binary", - if: - "matrix.profile == 'release' && startsWith(github.ref, 'refs/tags/')", - run: 'target/release/deno eval "console.log(1+2)" | grep 3', - env: { - NO_COLOR: 1, - }, - }, - { - // Verify that the binary actually works in the Ubuntu-16.04 sysroot. - // TODO(mmastrac): make this work for aarch64 as well - name: "Check deno binary (in sysroot)", - if: - "matrix.profile == 'release' && matrix.use_sysroot && matrix.arch != 'aarch64'", - run: 'sudo chroot /sysroot "$(pwd)/target/release/deno" --version', - }, - { name: "Configure hosts file for WPT", if: "matrix.wpt", run: "./wpt make-hosts-file | sudo tee -a /etc/hosts", |