summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml25
-rwxr-xr-xci/compat.sh25
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