zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
M.github/workflows/ci.yaml | 16++++++++--------
Aci/aarch64-macos-debug.sh | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rci/aarch64-macos.sh -> ci/aarch64-macos-release.sh | 0
Dci/x86_64-macos-debug.sh | 58----------------------------------------------------------
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