Commit e9a12491f6
Changed files (2)
ci/zinc/drone.yml
@@ -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
ci/zinc/linux_test_determinism
@@ -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