CI: add stage3/stage4 determinism check

Makes sure that #12183 will not regress.
This commit is contained in:
Andrew Kelley 2022-11-03 17:48:05 -07:00
parent b511231f95
commit faca0e4220
2 changed files with 36 additions and 0 deletions

View File

@ -35,10 +35,18 @@ steps:
commands:
- ./ci/zinc/build_aarch64_macos
- name: test_determinism
depends_on:
- test_stage3_release
image: ci/debian-amd64:11.1-12
commands:
- ./ci/zinc/linux_test_determinism
- name: linux_package
depends_on:
- test_stage3_debug
- test_stage3_release
- test_determinism
when:
branch:
- master

28
ci/zinc/linux_test_determinism Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh
set -x
set -e
DEPS_LOCAL="/deps/local"
ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
VERSION=$($ZIG_PREFIX/bin/zig version)
"$ZIG_PREFIX/bin/zig" build \
--prefix stage4 \
-Dconfig_h="build-release/config.h" \
-Denable-llvm \
-Denable-stage1 \
-Dno-lib \
-Drelease \
-Dstrip \
-Dtarget=x86_64-linux-musl \
-Duse-zig-libcxx \
-Dversion-string="$VERSION"
# diff returns an error code if the files differ.
echo "If the following command fails, it means nondeterminism has been"
echo "introduced, making stage3 and stage4 no longer byte-for-byte identical."
diff "$ZIG_PREFIX/bin/zig" "stage4/bin/zig"
# Explicit exit helps show last command duration.
exit