diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index cd7bf63..3524a4d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -22,6 +22,14 @@ jobs: with: version: ${{ env.ZIG_VERSION }} + # zig 0.16.0's package fetcher creates tmp/.zip inside the global + # cache without creating tmp/ first (src/Package/Fetch.zig:1499), and + # setup-zig's restored cache never contains tmp/. Without this, every + # dependency fetch dies with "failed to create temporary zip file: + # FileNotFound" before any network I/O. + - name: Create the fetch temp dir zig assumes + run: mkdir -p "${ZIG_GLOBAL_CACHE_DIR:?}/tmp" + - name: Run test suite (unit + hermetic loopback integration) run: zig build test -Dintegration @@ -36,6 +44,14 @@ jobs: with: version: ${{ env.ZIG_VERSION }} + # zig 0.16.0's package fetcher creates tmp/.zip inside the global + # cache without creating tmp/ first (src/Package/Fetch.zig:1499), and + # setup-zig's restored cache never contains tmp/. Without this, every + # dependency fetch dies with "failed to create temporary zip file: + # FileNotFound" before any network I/O. + - name: Create the fetch temp dir zig assumes + run: mkdir -p "${ZIG_GLOBAL_CACHE_DIR:?}/tmp" + # qemu-user, not qemu-user-static: Zig execs the bare `qemu-aarch64` # name, and the -static package only ships `qemu-aarch64-static`. - name: Install qemu-user @@ -94,6 +110,14 @@ jobs: with: version: ${{ env.ZIG_VERSION }} + # zig 0.16.0's package fetcher creates tmp/.zip inside the global + # cache without creating tmp/ first (src/Package/Fetch.zig:1499), and + # setup-zig's restored cache never contains tmp/. Without this, every + # dependency fetch dies with "failed to create temporary zip file: + # FileNotFound" before any network I/O. + - name: Create the fetch temp dir zig assumes + run: mkdir -p "${ZIG_GLOBAL_CACHE_DIR:?}/tmp" + - name: Set up Node uses: actions/setup-node@v4 with: @@ -197,6 +221,14 @@ jobs: with: version: ${{ env.ZIG_VERSION }} + # zig 0.16.0's package fetcher creates tmp/.zip inside the global + # cache without creating tmp/ first (src/Package/Fetch.zig:1499), and + # setup-zig's restored cache never contains tmp/. Without this, every + # dependency fetch dies with "failed to create temporary zip file: + # FileNotFound" before any network I/O. + - name: Create the fetch temp dir zig assumes + run: mkdir -p "${ZIG_GLOBAL_CACHE_DIR:?}/tmp" + - name: Set up Node uses: actions/setup-node@v4 with: