From d7540cf3cbc0672264a9d7db5eb5fb75a1ba261d Mon Sep 17 00:00:00 2001 From: Altagos Date: Sat, 12 Jul 2025 16:36:05 +0200 Subject: [PATCH] ci: add build workflow --- .tangled/workflows/build.yaml | 21 +++++++++++++++ scripts/install-zig.sh | 49 +++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .tangled/workflows/build.yaml create mode 100755 scripts/install-zig.sh diff --git a/.tangled/workflows/build.yaml b/.tangled/workflows/build.yaml new file mode 100644 index 0000000..efca89e --- /dev/null +++ b/.tangled/workflows/build.yaml @@ -0,0 +1,21 @@ +when: + - event: ["push", "pull_request"] + branch: ["main"] + - event: ["manual"] + +dependencies: + ## from nixpkgs + nixpkgs: + - curl + - jq + +steps: + - name: "Install zig" + command: "./scripts/install-zig.sh" + - name: "Build ReleaseFast" + command: "./zig/zig build -Doptimize=ReleaseFast" + +clone: + skip: false + depth: 1 + submodules: true diff --git a/scripts/install-zig.sh b/scripts/install-zig.sh new file mode 100755 index 0000000..18fae83 --- /dev/null +++ b/scripts/install-zig.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +JSON=$(curl -s https://ziglang.org/download/index.json) + +# Determine the architecture: +if [ "$(uname -m)" = 'arm64' ] || [ "$(uname -m)" = 'aarch64' ]; then + ZIG_ARCH="aarch64" +else + ZIG_ARCH="x86_64" +fi + +# Determine the operating system: +case "$(uname)" in + Linux) + ZIG_OS="linux" + ;; + Darwin) + ZIG_OS="macos" + ;; + CYGWIN*) + ZIG_OS="windows" + ;; + *) + echo "Unknown OS" + exit 1 + ;; +esac + +ZIG_TARGET="$ZIG_ARCH-$ZIG_OS" + +URL=$(echo "$JSON" | jq -r ".master.\"$ZIG_TARGET\".tarball") +EXPECTED_SHA=$(echo "$JSON" | jq -r ".master.\"$ZIG_TARGET\".shasum") + +curl -O "$URL" + +ACTUAL_SHA=$(shasum -a 256 zig*.tar.xz | awk '{print $1}') +if [ "$EXPECTED_SHA" != "$ACTUAL_SHA" ]; then + echo "SHA checksum verification failed." + echo "Expected: $EXPECTED_SHA" + echo "Actual: $ACTUAL_SHA" + exit 1 +fi + +if [ ! -d "zig" ]; then + mkdir zig +fi + +tar -xf zig*.tar.xz -C zig --strip-components=1 +rm zig*.tar.xz -- 2.51.2