commit 128fd7dd02ae112cba68d0ad6cc40dc1ce8c34b1 (tree)
parent 12813d5912c55d6b290690d821a782d6c756f11c
Author: Andrew Kelley <andrew@ziglang.org>
Date: Tue, 20 Jun 2023 13:02:37 -0700
CI: -x86_64-macos-debug, +aarch64-macos-debug
It's easier to get M1 hardware for testing than x86_64-macos. This
addresses the current bottleneck in our CI pipeline.
Diffstat:
4 files changed, 62 insertions(+), 66 deletions(-)
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
@@ -41,7 +41,7 @@ jobs:
uses: actions/checkout@v3
- name: Build and Test
run: sh ci/aarch64-linux-release.sh
- x86_64-macos-debug:
+ x86_64-macos-release:
runs-on: "macos-11"
env:
ARCH: "x86_64"
@@ -49,17 +49,17 @@ jobs:
- 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"
+ run: ci/x86_64-macos-release.sh
+ aarch64-macos-debug:
+ runs-on: [self-hosted, macOS, aarch64]
env:
- ARCH: "x86_64"
+ ARCH: "aarch64"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and Test
- run: ci/x86_64-macos-release.sh
- aarch64-macos:
+ run: ci/aarch64-macos-debug.sh
+ aarch64-macos-release:
runs-on: [self-hosted, macOS, aarch64]
env:
ARCH: "aarch64"
@@ -67,7 +67,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Build and Test
- run: ci/aarch64-macos.sh
+ 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
@@ -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.sh b/ci/aarch64-macos-release.sh
diff --git a/ci/x86_64-macos-debug.sh b/ci/x86_64-macos-debug.sh
@@ -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