diff options
author | Manlio Perillo <manlio.perillo@gmail.com> | 2023-04-12 17:04:18 +0200 |
---|---|---|
committer | Manlio Perillo <manlio.perillo@gmail.com> | 2023-04-18 18:16:19 +0200 |
commit | b59bef29b9c74270539e2f775d2f0394ec435f2d (patch) | |
tree | cbe8ebf8e9ed08d3808a81e314a8d1af5552d736 | |
parent | b84217161cfb18aed2b42506c193abe778aa3b5f (diff) |
ci: add a CI workflow
Add a new github workflow named CI.
Add a job named compat, checking that and old Zig compiler will not fail
with a compiler error, but instead will print an useful error message.
-rw-r--r-- | .github/workflows/ci.yml | 25 | ||||
-rwxr-xr-x | ci/compat.sh | 25 |
2 files changed, 50 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ebeda5b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,25 @@ +name: CI +on: + pull_request: + branches: [ main ] + +defaults: + run: + shell: bash + +jobs: + compat: + runs-on: ubuntu-latest + strategy: + matrix: + zig: [ 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.10.0 ] + steps: + - uses: actions/checkout@v2 + + - name: Setup Zig + uses: goto-bus-stop/setup-zig@v2 + with: + version: ${{ matrix.zig }} + + - name: Check compatibility with old Zig compilers + run: ci/compat.sh diff --git a/ci/compat.sh b/ci/compat.sh new file mode 100755 index 0000000..f5895fd --- /dev/null +++ b/ci/compat.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# This script checks that `zig build` will return an useful error message when +# the Zig compiler is not compatible, instead of failing due to a syntax error. +# +# This script should be run on an UNIX system. + +zig_version=$(zig version) + +zig build -Dn=1 -Dhealed &> /dev/null 2>&1 +zig_ret=$? + +if [ "$zig_ret" -eq 0 ]; then + printf "zig %s unexpectedly succeeded\n" "$zig_version" + exit 1 +fi + +zig_error=$(zig build -Dn=1 -Dhealed 2>&1) + +echo "$zig_error" | grep -q "it looks like your version of zig is too old" +zig_ret=$? + +if [ "$zig_ret" -ne 0 ]; then + printf "zig %s is not compatible\n" "$zig_version" + exit 1 +fi |