commit 3591c51fbedd39719d4302c21ba5d2cddf463d80 (tree)
parent 2623b5cf3a971cfb578321648fa4a7098a72d928
Author: Andrew Kelley <andrew@ziglang.org>
Date: Mon, 14 Nov 2022 16:04:01 -0700
CI: aarch64-linux: init
Diffstat:
3 files changed, 61 insertions(+), 81 deletions(-)
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
@@ -5,18 +5,13 @@ on:
branches:
- master
jobs:
- # linux:
- # runs-on: [self-hosted, Linux, aarch64]
- # env:
- # ARCH: "aarch64"
- # steps:
- # - name: Checkout
- # uses: actions/checkout@v3
-
- # - name: Test
- # run: echo "Success!"
- # - name: Run Build Script
- # run: sh ./ci/linux/build.sh
+ linux-aarch64:
+ runs-on: [self-hosted, Linux, aarch64]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Run Build Script
+ run: sh ./ci/linux/build-aarch64.sh
macos-x86_64:
strategy:
matrix:
diff --git a/ci/linux/build-aarch64.sh b/ci/linux/build-aarch64.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+
+# Requires cmake ninja-build
+
+set -x
+set -e
+
+ZIGDIR="$(pwd)"
+ARCH="$(uname -m)"
+TARGET="$ARCH-linux-musl"
+MCPU="baseline"
+CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
+PREFIX="$HOME/deps/$CACHE_BASENAME"
+ZIG="$PREFIX/bin/zig"
+
+export PATH="$HOME/deps/wasmtime-v2.0.2-aarch64-linux:$PATH"
+
+mkdir build-release
+cd build-release
+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
+
+ninja install
+
+# TODO: add -fqemu back to this line
+
+stage3-release/bin/zig build test docs \
+ -fwasmtime \
+ -Dstatic-llvm \
+ -Dtarget=native-native-musl \
+ --search-prefix "$PREFIX" \
+ --zig-lib-dir "$(pwd)/../lib"
+
+# Produce the experimental std lib documentation.
+mkdir -p "stage3-release/doc/std"
+stage3-release/bin/zig test ../lib/std/std.zig \
+ -femit-docs=stage3-release/doc/std \
+ -fno-emit-bin \
+ --zig-lib-dir "$(pwd)/../lib"
+
+# cp ../LICENSE $RELEASE_STAGING/
+# cp ../zig-cache/langref.html $RELEASE_STAGING/doc/
+
+# # Look for HTML errors.
+# tidy --drop-empty-elements no -qe $RELEASE_STAGING/doc/langref.html
diff --git a/ci/linux/build.sh b/ci/linux/build.sh
@@ -1,68 +0,0 @@
-#!/bin/sh
-
-
-# Requires cmake ninja-build
-
-set -x
-set -e
-
-ZIGDIR="$(pwd)"
-TARGET="$ARCH-linux-musl"
-MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
-PREFIX="$HOME/$CACHE_BASENAME"
-JOBS="-j2"
-
-rm -rf $PREFIX
-cd $HOME
-
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-ZIG="$PREFIX/bin/zig"
-
-export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
-export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
-export PATH=$DEPS_LOCAL/bin:$PATH
-
-mkdir build-release
-cd build-release
-cmake .. \
- -DCMAKE_INSTALL_PREFIX="stage3-release" \
- -DCMAKE_PREFIX_PATH="$PREFIX" \
- -DCMAKE_BUILD_TYPE=Release \
- -DZIG_TARGET_TRIPLE="$TARGET" \
- -DZIG_TARGET_MCPU="$MCPU" \
- -DZIG_STATIC=ON \
- -GNinja
-
-# Now cmake will use zig as the C/C++ compiler. We reset the environment variables
-# so that installation and testing do not get affected by them.
-unset CC
-unset CXX
-
-ninja install
-
-stage3-release/bin/zig build test docs \
- -fqemu \
- -fwasmtime \
- -Dstatic-llvm \
- -Dtarget=native-native-musl \
- --search-prefix "$PREFIX" \
- --zig-lib-dir "$(pwd)/../lib"
-
-# Produce the experimental std lib documentation.
-mkdir -p "stage3-release/doc/std"
-stage3-release/bin/zig test ../lib/std/std.zig \
- -femit-docs=stage3-release/doc/std \
- -fno-emit-bin \
- --zig-lib-dir "$(pwd)/../lib"
-
-# cp ../LICENSE $RELEASE_STAGING/
-# cp ../zig-cache/langref.html $RELEASE_STAGING/doc/
-
-# # Look for HTML errors.
-# tidy --drop-empty-elements no -qe $RELEASE_STAGING/doc/langref.html
-
-# Explicit exit helps show last command duration.
-exit
-\ No newline at end of file