More CI (#3)
- ci only: use a separate zig cache dir for each run - use `tools/bazel` everywhere. - remove arm64 tests. They don't give enough value to be worth the brittle environment. - remove windows execution, except for launcher. Ditto. I will probably bring them back.
This commit is contained in:
14
ci/launcher
14
ci/launcher
@@ -5,8 +5,10 @@
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
ZIG=${ZIG:-$(bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
||||
echo "--- which zig"
|
||||
ZIG=${ZIG:-$(tools/bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
||||
|
||||
echo "--- compile launcher.zig for various architectures"
|
||||
for target in \
|
||||
aarch64-linux-gnu.2.19 \
|
||||
aarch64-macos-none \
|
||||
@@ -17,15 +19,9 @@ do
|
||||
$ZIG build-exe -fno-emit-bin -target $target toolchain/launcher.zig
|
||||
done
|
||||
|
||||
echo "--- zig fmt --check toolchain/launcher.zig"
|
||||
$ZIG fmt --check toolchain/launcher.zig
|
||||
|
||||
echo "--- zig test toolchain/launcher.zig"
|
||||
# until bazel-zig-cc gets a zig toolchain, run launcher's unit tests here.
|
||||
$ZIG test toolchain/launcher.zig
|
||||
|
||||
# ReleaseSafe because of https://github.com/ziglang/zig/issues/14036
|
||||
$ZIG test \
|
||||
-OReleaseSafe \
|
||||
-target x86_64-windows-gnu \
|
||||
--test-cmd wine64-stable \
|
||||
--test-cmd-bin \
|
||||
toolchain/launcher.zig
|
||||
|
||||
18
ci/launcher-wine64
Executable file
18
ci/launcher-wine64
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2023 Uber Technologies, Inc.
|
||||
# Licensed under the Apache License, Version 2.0
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
echo "--- which zig"
|
||||
ZIG=${ZIG:-$(tools/bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
||||
|
||||
echo "--- test toolchain/launcher.zig via wine64"
|
||||
# ReleaseSafe because of https://github.com/ziglang/zig/issues/14036
|
||||
$ZIG test \
|
||||
-OReleaseSafe \
|
||||
-target x86_64-windows-gnu \
|
||||
--test-cmd wine64-stable \
|
||||
--test-cmd-bin \
|
||||
toolchain/launcher.zig
|
||||
@@ -7,13 +7,13 @@ set -euo pipefail
|
||||
|
||||
indent() { sed 's/^/ /'; }
|
||||
|
||||
echo "Available toolchains:"
|
||||
bazel query --noshow_progress '@zig_sdk//toolchain:*' | indent
|
||||
echo "Available platforms:"
|
||||
bazel query --noshow_progress '@zig_sdk//platform:*' | indent
|
||||
echo "Available libc aware toolchains:"
|
||||
bazel query --noshow_progress '@zig_sdk//libc_aware/toolchain:*' | indent
|
||||
echo "Available libc aware platforms:"
|
||||
bazel query --noshow_progress '@zig_sdk//libc_aware/platform:*' | indent
|
||||
echo "Available libc variants:"
|
||||
bazel query --noshow_progress "attr(constraint_setting, @zig_sdk//libc:variant, @zig_sdk//...)" | indent
|
||||
echo "--- Available toolchains:"
|
||||
tools/bazel query --noshow_progress '@zig_sdk//toolchain:*' | indent
|
||||
echo "--- Available platforms:"
|
||||
tools/bazel query --noshow_progress '@zig_sdk//platform:*' | indent
|
||||
echo "--- Available libc aware toolchains:"
|
||||
tools/bazel query --noshow_progress '@zig_sdk//libc_aware/toolchain:*' | indent
|
||||
echo "--- Available libc aware platforms:"
|
||||
tools/bazel query --noshow_progress '@zig_sdk//libc_aware/platform:*' | indent
|
||||
echo "--- Available libc variants:"
|
||||
tools/bazel query --noshow_progress "attr(constraint_setting, @zig_sdk//libc:variant, @zig_sdk//...)" | indent
|
||||
|
||||
18
ci/test
18
ci/test
@@ -5,24 +5,26 @@
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
BAZEL_ZIG_CC_CACHE_PREFIX=${BAZEL_ZIG_CC_CACHE_PREFIX:-/tmp/bazel-zig-cc}
|
||||
mkdir -p "${BAZEL_ZIG_CC_CACHE_PREFIX}"
|
||||
|
||||
# check a very hermetic setup with a single target. Re-building all of
|
||||
# them takes a long time, so using only one. If we ever decide to build all
|
||||
# targets, we will need to exclude Go, since go dynamically links to glibc on
|
||||
# linux.
|
||||
bazel build "$@" \
|
||||
echo "--- build a single target with very hermetic sandbox"
|
||||
tools/bazel build "$@" \
|
||||
--experimental_use_hermetic_linux_sandbox \
|
||||
--sandbox_add_mount_pair=/proc \
|
||||
//test/c:which_libc_linux_amd64_gnu.2.19
|
||||
|
||||
# then test everything else with the standard sandbox
|
||||
bazel test "$@" ...
|
||||
echo "--- bazel test $@ ..."
|
||||
tools/bazel test "$@" ...
|
||||
|
||||
# Ensure that github.com/ziglang/zig/issues/13050 does not regress
|
||||
find "$BAZEL_ZIG_CC_CACHE_PREFIX" -name mutex_destructor.o -execdir file '{}' \; | \
|
||||
sort | uniq -c | sort -rn > /tmp/got_cache
|
||||
echo "--- ensure github.com/ziglang/zig/issues/13050 does not regress"
|
||||
find "${BAZEL_ZIG_CC_CACHE_PREFIX:-/tmp/bazel-zig-cc}" \
|
||||
-name mutex_destructor.o -execdir file '{}' \; \
|
||||
| sort \
|
||||
| uniq -c \
|
||||
| sort -rn > /tmp/got_cache
|
||||
|
||||
diff -u ci/testdata/want_cache /tmp/got_cache || {
|
||||
>&2 echo "ERROR: unexpected artifacts. This is TODO."
|
||||
|
||||
Reference in New Issue
Block a user