1

run tests with qemu-aarch64

This commit is contained in:
Motiejus Jakštys 2022-02-04 10:09:32 +02:00
parent 8430789f21
commit 7c8682b865
2 changed files with 33 additions and 21 deletions

View File

@ -2,7 +2,8 @@ image: debian/stable
packages:
- direnv
- shellcheck
- qemu-user
- qemu-user-static
- libc6-arm64-cross
sources:
- https://git.sr.ht/~motiejus/bazel-zig-cc
environment:
@ -14,14 +15,19 @@ triggers:
tasks:
- setup: |
sudo apt-get purge gcc -y && sudo apt-get autoremove -y
sudo mkdir -p /etc/qemu-binfmt
sudo ln -sf /usr/aarch64-linux-gnu /etc/qemu-binfmt/aarch64
- test_list_toolchains_platforms: |
cd bazel-zig-cc; . .envrc
echo "Available toolchains:"
bazel query @zig_sdk//... | grep _toolchain$
echo "Available platforms:"
bazel query @zig_sdk//... | grep _platform$
- test_hello_on_toolchains: |
cd bazel-zig-cc
./ci/test --color=yes --curses=yes
- lint: |
cd bazel-zig-cc; . .envrc
shellcheck -x $(awk '/#!\/bin\/(ba)?sh/&&FNR==1{print FILENAME}' $(git ls-files))
bazel run //:buildifier
git diff --exit-code
- test_list_toolchains: |
cd bazel-zig-cc; . .envrc; echo "Available toolchains:"
bazel query @zig_sdk//... | sed -En '/.*_toolchain$/ s/.*:(.*)_toolchain$/\1/p'
- test_hello_on_toolchains: |
cd bazel-zig-cc
./ci/test --color=yes --curses=yes

34
ci/test
View File

@ -16,21 +16,27 @@ while read -r action platform toolchain run_under; do
if [[ $run_under != : ]]; then
args+=(--run_under="$run_under")
fi
args+=(--platforms "@zig_sdk//:${platform}_platform")
args+=(--extra_toolchains "@zig_sdk//:${toolchain}_toolchain")
args+=(//test/...)
_run bazel "$action" "${args[@]}"
args+=(\
--platforms "@zig_sdk//:${platform}_platform" \
--extra_toolchains "@zig_sdk//:${toolchain}_toolchain" \
//test/... \
)
case "$action" in
test)
_run bazel build "${args[@]}"
_run bazel test --build_tests_only "${args[@]}"
;;
build)
_run bazel build "${args[@]}"
;;
esac
done <<EOF
build darwin_amd64 darwin_amd64 :
test linux_arm64 linux_arm64_musl qemu-aarch64-static
test linux_arm64 linux_arm64_gnu.2.28 qemu-aarch64-static
test linux_amd64 linux_amd64_gnu.2.19 :
test linux_amd64 linux_amd64_musl :
build linux_arm64 linux_arm64_musl :
build linux_arm64 linux_arm64_gnu.2.28 :
build darwin_amd64 darwin_amd64 :
EOF
# TODO:
# works locally, fails on srht:
# test linux_arm64 linux_arm64_musl qemu-aarch64
#
# fails locally, qemu-aarch64 can't find the files in /usr
# test linux_arm64 linux_arm64_gnu.2.28 qemu-aarch64 -L /usr/aarch64-linux-gnu