From 169dd986422729f97812fbefd6dc6f5b99c5a973 Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Sat, 21 Feb 2026 18:18:54 -0500 Subject: [PATCH] fix(ci): use GitHub releases for Zig download with better error handling - Switch from ziglang.org/download to github.com/ziglang/zig/releases - Add curl -fsSL --retry 3 for reliable downloads - Use file-based extraction instead of pipe-to-tar for verification --- .forgejo/workflows/ci.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index ac862e2..ac9548d 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -77,13 +77,19 @@ jobs: echo "Zig ${ZIG_VERSION} already installed - skipping download" else echo "Installing Zig ${ZIG_VERSION}..." + ZIG_DIR="/usr/local/zig-${ZIG_VERSION}" if [[ "$OSTYPE" == "linux-gnu"* ]]; then - curl -sL "https://ziglang.org/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz" | sudo tar -C /usr/local -xJf - - sudo ln -sf "/usr/local/zig-linux-x86_64-${ZIG_VERSION}/zig" /usr/local/bin/zig + curl -fsSL --retry 3 "https://github.com/ziglang/zig/releases/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz" -o /tmp/zig.tar.xz + sudo mkdir -p "${ZIG_DIR}" + sudo tar -C "${ZIG_DIR}" --strip-components=1 -xJf /tmp/zig.tar.xz + sudo ln -sf "${ZIG_DIR}/zig" /usr/local/bin/zig elif [[ "$OSTYPE" == "darwin"* ]]; then - curl -sL "https://ziglang.org/download/${ZIG_VERSION}/zig-macos-x86_64-${ZIG_VERSION}.tar.xz" | sudo tar -C /usr/local -xJf - - sudo ln -sf "/usr/local/zig-macos-x86_64-${ZIG_VERSION}/zig" /usr/local/bin/zig + curl -fsSL --retry 3 "https://github.com/ziglang/zig/releases/download/${ZIG_VERSION}/zig-macos-x86_64-${ZIG_VERSION}.tar.xz" -o /tmp/zig.tar.xz + sudo mkdir -p "${ZIG_DIR}" + sudo tar -C "${ZIG_DIR}" --strip-components=1 -xJf /tmp/zig.tar.xz + sudo ln -sf "${ZIG_DIR}/zig" /usr/local/bin/zig fi + rm -f /tmp/zig.tar.xz echo "Zig ${ZIG_VERSION} installed" fi zig version @@ -188,13 +194,19 @@ jobs: echo "Zig ${ZIG_VERSION} already installed - skipping download" else echo "Installing Zig ${ZIG_VERSION}..." + ZIG_DIR="/usr/local/zig-${ZIG_VERSION}" if [[ "$OSTYPE" == "linux-gnu"* ]]; then - curl -sL "https://ziglang.org/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz" | sudo tar -C /usr/local -xJf - - sudo ln -sf "/usr/local/zig-linux-x86_64-${ZIG_VERSION}/zig" /usr/local/bin/zig + curl -fsSL --retry 3 "https://github.com/ziglang/zig/releases/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz" -o /tmp/zig.tar.xz + sudo mkdir -p "${ZIG_DIR}" + sudo tar -C "${ZIG_DIR}" --strip-components=1 -xJf /tmp/zig.tar.xz + sudo ln -sf "${ZIG_DIR}/zig" /usr/local/bin/zig elif [[ "$OSTYPE" == "darwin"* ]]; then - curl -sL "https://ziglang.org/download/${ZIG_VERSION}/zig-macos-x86_64-${ZIG_VERSION}.tar.xz" | sudo tar -C /usr/local -xJf - - sudo ln -sf "/usr/local/zig-macos-x86_64-${ZIG_VERSION}/zig" /usr/local/bin/zig + curl -fsSL --retry 3 "https://github.com/ziglang/zig/releases/download/${ZIG_VERSION}/zig-macos-x86_64-${ZIG_VERSION}.tar.xz" -o /tmp/zig.tar.xz + sudo mkdir -p "${ZIG_DIR}" + sudo tar -C "${ZIG_DIR}" --strip-components=1 -xJf /tmp/zig.tar.xz + sudo ln -sf "${ZIG_DIR}/zig" /usr/local/bin/zig fi + rm -f /tmp/zig.tar.xz echo "Zig ${ZIG_VERSION} installed" fi zig version