diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-01-20 11:57:49 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-01-22 12:14:25 -0700 |
| commit | 3df4707ea79d292f07e0d78ae7dd76266eeb1a16 (patch) | |
| tree | 0fc883047a5d5fed67d8f4029a96bddc999bc4f3 | |
| parent | c0284e242f7d78955204dc8a627fecd45aa5e521 (diff) | |
| download | zig-3df4707ea79d292f07e0d78ae7dd76266eeb1a16.tar.gz zig-3df4707ea79d292f07e0d78ae7dd76266eeb1a16.zip | |
CI: also test x86_64-macos with a debug zig compiler
| -rw-r--r-- | .github/workflows/ci.yaml | 13 | ||||
| -rwxr-xr-x | ci/x86_64-macos-debug.sh | 58 | ||||
| -rwxr-xr-x | ci/x86_64-macos-release.sh (renamed from ci/x86_64-macos.sh) | 16 |
3 files changed, 75 insertions, 12 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a0ff406dec..34e029cdd5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@v3 - name: Build and Test run: sh ci/aarch64-linux-release.sh - x86_64-macos: + x86_64-macos-debug: runs-on: "macos-11" env: ARCH: "x86_64" @@ -46,7 +46,16 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Build and Test - run: ci/x86_64-macos.sh + run: ci/x86_64-macos-debug.sh + x86_64-macos-release: + runs-on: "macos-11" + env: + ARCH: "x86_64" + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build and Test + run: ci/x86_64-macos-release.sh aarch64-macos: runs-on: [self-hosted, macOS, aarch64] env: diff --git a/ci/x86_64-macos-debug.sh b/ci/x86_64-macos-debug.sh new file mode 100755 index 0000000000..2ce2b9ba5f --- /dev/null +++ b/ci/x86_64-macos-debug.sh @@ -0,0 +1,58 @@ +#!/bin/sh + +set -x +set -e + +ZIGDIR="$(pwd)" +TARGET="$ARCH-macos-none" +MCPU="baseline" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.534+b0b1cc356" +PREFIX="$HOME/$CACHE_BASENAME" +JOBS="-j3" + +rm -rf $PREFIX +cd $HOME + +curl -L -O "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz" +tar xf "$CACHE_BASENAME.tar.xz" + +ZIG="$PREFIX/bin/zig" + +cd $ZIGDIR + +# Make the `zig version` number consistent. +# This will affect the cmake command below. +git config core.abbrev 9 +git fetch --unshallow || true +git fetch --tags + +rm -rf build +mkdir build +cd build + +# Override the cache directories because they won't actually help other CI runs +# which will be testing alternate versions of zig, and ultimately would just +# fill up space on the hard drive for no reason. +export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache" +export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache" + +cmake .. \ + -DCMAKE_PREFIX_PATH="$PREFIX" \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_C_COMPILER="$ZIG;cc;-target;$TARGET;-mcpu=$MCPU" \ + -DCMAKE_CXX_COMPILER="$ZIG;c++;-target;$TARGET;-mcpu=$MCPU" \ + -DZIG_TARGET_TRIPLE="$TARGET" \ + -DZIG_TARGET_MCPU="$MCPU" \ + -DZIG_STATIC=ON + +make $JOBS install + +stage3/bin/zig build test docs \ + --zig-lib-dir "$(pwd)/../lib" \ + -Denable-macos-sdk \ + -Dstatic-llvm \ + -Dskip-non-native \ + --search-prefix "$PREFIX" + +# Produce the experimental std lib documentation. +stage3/bin/zig test ../lib/std/std.zig -femit-docs -fno-emit-bin --zig-lib-dir ../lib diff --git a/ci/x86_64-macos.sh b/ci/x86_64-macos-release.sh index 4ea62bf1e0..5153dbb19d 100755 --- a/ci/x86_64-macos.sh +++ b/ci/x86_64-macos-release.sh @@ -3,9 +3,6 @@ set -x set -e -# Script assumes the presence of the following: -# s3cmd - ZIGDIR="$(pwd)" TARGET="$ARCH-macos-none" MCPU="baseline" @@ -40,7 +37,6 @@ export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache" export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache" cmake .. \ - -DCMAKE_INSTALL_PREFIX="stage3-release" \ -DCMAKE_PREFIX_PATH="$PREFIX" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER="$ZIG;cc;-target;$TARGET;-mcpu=$MCPU" \ @@ -51,7 +47,7 @@ cmake .. \ make $JOBS install -stage3-release/bin/zig build test docs \ +stage3/bin/zig build test docs \ --zig-lib-dir "$(pwd)/../lib" \ -Denable-macos-sdk \ -Dstatic-llvm \ @@ -59,20 +55,20 @@ stage3-release/bin/zig build test docs \ --search-prefix "$PREFIX" # Produce the experimental std lib documentation. -stage3-release/bin/zig test ../lib/std/std.zig -femit-docs -fno-emit-bin --zig-lib-dir ../lib +stage3/bin/zig test ../lib/std/std.zig -femit-docs -fno-emit-bin --zig-lib-dir ../lib # Ensure that stage3 and stage4 are byte-for-byte identical. -stage3-release/bin/zig build \ - --prefix stage4-release \ +stage3/bin/zig build \ + --prefix stage4 \ -Denable-llvm \ -Dno-lib \ -Drelease \ -Dstrip \ -Dtarget=$TARGET \ -Duse-zig-libcxx \ - -Dversion-string="$(stage3-release/bin/zig version)" + -Dversion-string="$(stage3/bin/zig 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 stage3-release/bin/zig stage4-release/bin/zig +diff stage3/bin/zig stage4/bin/zig |
