1414 strategy :
1515 matrix :
1616 os : [ubuntu-latest, macos-latest, windows-latest]
17+ arch : [x86_64, aarch64, i386]
18+ include :
19+ - os : ubuntu-latest
20+ arch : arm
21+ - os : ubuntu-latest
22+ arch : riscv64
1723 runs-on : ${{ matrix.os }}
1824
1925 steps :
@@ -23,27 +29,52 @@ jobs:
2329 uses : actions/cache@v3
2430 with :
2531 path : ~/zig
26- key : ${{ runner.os }}-zig-${{ env.ZIG_VERSION }}
32+ key : ${{ runner.os }}-${{ matrix.arch }}- zig-${{ env.ZIG_VERSION }}
2733
2834 - name : Install Zig
2935 if : steps.cache.outputs.cache-hit != 'true'
3036 run : |
31- case ${{ runner.os }} in
32- Linux)
37+ case " ${{ runner.os }}-${{ matrix.arch }}" in
38+ Linux-x86_64 )
3339 wget https://ziglang.org/builds/zig-linux-x86_64-${{ env.ZIG_VERSION }}.tar.xz
3440 tar -xf zig-linux-x86_64-${{ env.ZIG_VERSION }}.tar.xz
3541 mv zig-linux-x86_64-${{ env.ZIG_VERSION }} ~/zig
3642 ;;
37- macOS)
43+ Linux-aarch64)
44+ wget https://ziglang.org/builds/zig-linux-aarch64-${{ env.ZIG_VERSION }}.tar.xz
45+ tar -xf zig-linux-aarch64-${{ env.ZIG_VERSION }}.tar.xz
46+ mv zig-linux-aarch64-${{ env.ZIG_VERSION }} ~/zig
47+ ;;
48+ Linux-arm)
49+ wget https://ziglang.org/builds/zig-linux-armv7a-${{ env.ZIG_VERSION }}.tar.xz
50+ tar -xf zig-linux-armv7a-${{ env.ZIG_VERSION }}.tar.xz
51+ mv zig-linux-armv7a-${{ env.ZIG_VERSION }} ~/zig
52+ ;;
53+ Linux-riscv64)
54+ wget https://ziglang.org/builds/zig-linux-riscv64-${{ env.ZIG_VERSION }}.tar.xz
55+ tar -xf zig-linux-riscv64-${{ env.ZIG_VERSION }}.tar.xz
56+ mv zig-linux-riscv64-${{ env.ZIG_VERSION }} ~/zig
57+ ;;
58+ macOS-x86_64)
3859 wget https://ziglang.org/builds/zig-macos-x86_64-${{ env.ZIG_VERSION }}.tar.xz
3960 tar -xf zig-macos-x86_64-${{ env.ZIG_VERSION }}.tar.xz
4061 mv zig-macos-x86_64-${{ env.ZIG_VERSION }} ~/zig
4162 ;;
42- Windows)
63+ macOS-aarch64)
64+ wget https://ziglang.org/builds/zig-macos-aarch64-${{ env.ZIG_VERSION }}.tar.xz
65+ tar -xf zig-macos-aarch64-${{ env.ZIG_VERSION }}.tar.xz
66+ mv zig-macos-aarch64-${{ env.ZIG_VERSION }} ~/zig
67+ ;;
68+ Windows-x86_64)
4369 curl -L https://ziglang.org/builds/zig-windows-x86_64-${{ env.ZIG_VERSION }}.zip -o zig.zip
4470 7z x zig.zip
4571 mv zig-windows-x86_64-${{ env.ZIG_VERSION }} ~/zig
4672 ;;
73+ Windows-aarch64)
74+ curl -L https://ziglang.org/builds/zig-windows-aarch64-${{ env.ZIG_VERSION }}.zip -o zig.zip
75+ 7z x zig.zip
76+ mv zig-windows-aarch64-${{ env.ZIG_VERSION }} ~/zig
77+ ;;
4778 esac
4879 shell : bash
4980
@@ -57,15 +88,15 @@ jobs:
5788 path : |
5889 zig-cache
5990 ~/.cache/zig
60- key : ${{ runner.os }}-zig-build-${{ hashFiles('**/*.zig') }}
91+ key : ${{ runner.os }}-${{ matrix.arch }}- zig-build-${{ hashFiles('**/*.zig') }}
6192 restore-keys : |
62- ${{ runner.os }}-zig-build-
93+ ${{ runner.os }}-${{ matrix.arch }}- zig-build-
6394
6495 - name : Formatting
6596 run : zig fmt --check --color on .
6697
6798 - name : Unit testing
68- run : zig build test --summary all
99+ run : zig build test -Dtarget=${{ matrix.arch }}-${{ runner.os }} - -summary all
69100
70101 - name : Building
71- run : zig build -Doptimize=ReleaseFast
102+ run : zig build -Dtarget=${{ matrix.arch }}-${{ runner.os }} - Doptimize=ReleaseFast
0 commit comments