summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-05-17 15:13:11 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-05-17 17:46:16 -0400
commit23e048793401900c8d1768b4ffb0fc4ff623ef3e (patch)
tree7734fbdaae685feadda1d1448b3d6bca0d9aa512
parent5b46712d892bebbb280f971675e9b598903d11cf (diff)
downloadbfs-23e048793401900c8d1768b4ffb0fc4ff623ef3e.tar.xz
ci: Surface compiler warnings/errors as GitHub actions messages
-rwxr-xr-x.github/diag.sh16
-rw-r--r--.github/workflows/ci.yml14
2 files changed, 23 insertions, 7 deletions
diff --git a/.github/diag.sh b/.github/diag.sh
new file mode 100755
index 0000000..942487a
--- /dev/null
+++ b/.github/diag.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+# Copyright © Tavian Barnes <tavianator@tavianator.com>
+# SPDX-License-Identifier: 0BSD
+
+# Convert compiler diagnostics to GitHub Actions messages
+# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-warning-message
+
+set -eu
+
+filter() {
+ sed -E 's/^(([^:]*):([^:]*):([^:]*): (warning|error): (.*))$/::\5 file=\2,line=\3,col=\4,title=Compiler \5::\6\
+\1/'
+}
+
+"$@" 2> >(filter >&2) | filter
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1d4196e..8011224 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,7 +39,7 @@ jobs:
- name: Run tests
run: |
- make -j$(nproc) distcheck
+ .github/diag.sh make -j$(nproc) distcheck
- uses: actions/upload-artifact@v4
with:
@@ -63,7 +63,7 @@ jobs:
- name: Run tests
run: |
jobs=$(sysctl -n hw.ncpu)
- make -j$jobs distcheck
+ .github/diag.sh make -j$jobs distcheck
freebsd:
name: FreeBSD
@@ -87,7 +87,7 @@ jobs:
pkgconf \
tcl-wrapper
sudo mount -t fdescfs none /dev/fd
- make -j$(nproc) distcheck
+ .github/diag.sh make -j$(nproc) distcheck
- uses: actions/upload-artifact@v4
with:
@@ -116,7 +116,7 @@ jobs:
oniguruma
jobs=$(sysctl -n hw.ncpu)
./configure MAKE=gmake
- gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ .github/diag.sh gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
- uses: actions/upload-artifact@v4
with:
@@ -146,7 +146,7 @@ jobs:
tcl-expect
jobs=$(sysctl -n hw.ncpu)
./configure
- make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ .github/diag.sh make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
- uses: actions/upload-artifact@v4
with:
@@ -182,7 +182,7 @@ jobs:
chown -R action:action .
jobs=$(sysctl -n hw.ncpu)
sudo -u action ./configure
- sudo -u action make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ sudo -u action .github/diag.sh make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
- uses: actions/upload-artifact@v4
with:
@@ -219,7 +219,7 @@ jobs:
chown -R action:staff .
jobs=$(getconf NPROCESSORS_ONLN)
sudo -u action ./configure MAKE=gmake
- sudo -u action gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ sudo -u action .github/diag.sh gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
- uses: actions/upload-artifact@v4
with: