diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5d011a2d54c4c69c98393d3313966a8e01056e11..1285eb5cc37e23c802c4fbdb2a856f6e335e107b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -41,15 +41,6 @@ jobs: uses: actions/checkout@v3 - name: Build and Test run: sh ci/aarch64-linux-release.sh - x86_64-macos-debug: - runs-on: "macos-11" - env: - ARCH: "x86_64" - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Build and Test - run: ci/x86_64-macos-debug.sh x86_64-macos-release: runs-on: "macos-11" env: @@ -59,7 +50,7 @@ jobs: uses: actions/checkout@v3 - name: Build and Test run: ci/x86_64-macos-release.sh - aarch64-macos: + aarch64-macos-debug: runs-on: [self-hosted, macOS, aarch64] env: ARCH: "aarch64" @@ -67,7 +58,16 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Build and Test - run: ci/aarch64-macos.sh + run: ci/aarch64-macos-debug.sh + aarch64-macos-release: + runs-on: [self-hosted, macOS, aarch64] + env: + ARCH: "aarch64" + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build and Test + run: ci/aarch64-macos-release.sh x86_64-windows-debug: runs-on: windows-latest env: diff --git a/ci/aarch64-macos-debug.sh b/ci/aarch64-macos-debug.sh new file mode 100755 index 0000000000000000000000000000000000000000..d8fb39a6a0a0404448d2352fdc6379b7037201b2 --- /dev/null +++ b/ci/aarch64-macos-debug.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +set -x +set -e + +# Script assumes the presence of the following: +# s3cmd + +ZIGDIR="$(pwd)" +TARGET="$ARCH-macos-none" +MCPU="baseline" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.2441+eb19f73af" +PREFIX="$HOME/$CACHE_BASENAME" +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 + +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" + +PATH="$HOME/local/bin:$PATH" cmake .. \ + -DCMAKE_INSTALL_PREFIX="stage3-debug" \ + -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 \ + -GNinja + +$HOME/local/bin/ninja install + +stage3-debug/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-debug/bin/zig test ../lib/std/std.zig -femit-docs -fno-emit-bin --zig-lib-dir ../lib diff --git a/ci/aarch64-macos-release.sh b/ci/aarch64-macos-release.sh new file mode 100755 index 0000000000000000000000000000000000000000..c5ce361722aa18b607c44c5689e38e824298b194 --- /dev/null +++ b/ci/aarch64-macos-release.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +set -x +set -e + +# Script assumes the presence of the following: +# s3cmd + +ZIGDIR="$(pwd)" +TARGET="$ARCH-macos-none" +MCPU="baseline" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.2441+eb19f73af" +PREFIX="$HOME/$CACHE_BASENAME" +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 + +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" + +PATH="$HOME/local/bin:$PATH" cmake .. \ + -DCMAKE_INSTALL_PREFIX="stage3-release" \ + -DCMAKE_PREFIX_PATH="$PREFIX" \ + -DCMAKE_BUILD_TYPE=Release \ + -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 \ + -GNinja + +$HOME/local/bin/ninja install + +stage3-release/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-release/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 \ + -Denable-llvm \ + -Dno-lib \ + -Doptimize=ReleaseFast \ + -Dstrip \ + -Dtarget=$TARGET \ + -Duse-zig-libcxx \ + -Dversion-string="$(stage3-release/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 --git a/ci/aarch64-macos.sh b/ci/aarch64-macos.sh deleted file mode 100755 index c5ce361722aa18b607c44c5689e38e824298b194..0000000000000000000000000000000000000000 --- a/ci/aarch64-macos.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh - -set -x -set -e - -# Script assumes the presence of the following: -# s3cmd - -ZIGDIR="$(pwd)" -TARGET="$ARCH-macos-none" -MCPU="baseline" -CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.2441+eb19f73af" -PREFIX="$HOME/$CACHE_BASENAME" -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 - -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" - -PATH="$HOME/local/bin:$PATH" cmake .. \ - -DCMAKE_INSTALL_PREFIX="stage3-release" \ - -DCMAKE_PREFIX_PATH="$PREFIX" \ - -DCMAKE_BUILD_TYPE=Release \ - -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 \ - -GNinja - -$HOME/local/bin/ninja install - -stage3-release/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-release/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 \ - -Denable-llvm \ - -Dno-lib \ - -Doptimize=ReleaseFast \ - -Dstrip \ - -Dtarget=$TARGET \ - -Duse-zig-libcxx \ - -Dversion-string="$(stage3-release/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 --git a/ci/x86_64-macos-debug.sh b/ci/x86_64-macos-debug.sh deleted file mode 100755 index d1e86123ed45a51d76a6be9ccf298e682159a129..0000000000000000000000000000000000000000 --- a/ci/x86_64-macos-debug.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/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.2441+eb19f73af" -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