diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6eb27a2 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,48 @@ +name: Zig Build and Test + +on: + pull_request: + branches: [ main ] + +jobs: + build-and-test: + name: Build and Test on ${{ matrix.os }} (${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-latest + arch: aarch64 + - os: macos-latest + arch: x86_64 + - os: ubuntu-latest + arch: aarch64 + - os: ubuntu-latest + arch: x86_64 + - os: windows-latest + arch: x86_64 + + steps: + - uses: actions/checkout@v2 + + - name: Set up Zig + uses: goto-bus-stop/setup-zig@v2 + with: + version: 0.13.0 + + - name: Build and Test + run: | + if [ "${{ matrix.os }}" = "windows-latest" ]; then + zig build -Drelease -Dtarget=${{ matrix.arch }}-windows test + elif [ "${{ matrix.os }}" = "ubuntu-latest" ]; then + zig build -Drelease -Dtarget=${{ matrix.arch }}-linux test + elif [ "${{ matrix.os }}" = "macos-latest" ]; then + zig build -Drelease -Dtarget=${{ matrix.arch }}-macos test + fi + shell: bash + + - name: Upload build artifacts + uses: actions/upload-artifact@v2 + with: + name: test_output-${{ matrix.os }}-${{ matrix.arch }} + path: test_output/