summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/codeql.yml4
-rwxr-xr-x.github/diag.sh16
-rw-r--r--.github/workflows/ci.yml78
-rw-r--r--.github/workflows/codecov.yml4
-rw-r--r--.github/workflows/codeql.yml4
5 files changed, 76 insertions, 30 deletions
diff --git a/.github/codeql.yml b/.github/codeql.yml
index 6ff8337..a4271ec 100644
--- a/.github/codeql.yml
+++ b/.github/codeql.yml
@@ -2,8 +2,12 @@ query-filters:
- exclude:
id: cpp/commented-out-code
- exclude:
+ id: cpp/include-non-header
+ - exclude:
id: cpp/long-switch
- exclude:
id: cpp/loop-variable-changed
- exclude:
id: cpp/poorly-documented-function
+ - exclude:
+ id: cpp/constant-comparison
diff --git a/.github/diag.sh b/.github/diag.sh
new file mode 100755
index 0000000..fe78be8
--- /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/'
+}
+
+exec "$@" > >(filter) 2> >(filter >&2)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3890bb0..20d3797 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -6,7 +6,7 @@ jobs:
linux:
name: Linux
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@@ -17,6 +17,7 @@ jobs:
sudo apt-get update -y
sudo apt-get install -y \
expect \
+ mandoc \
gcc-multilib \
libgcc-s1:i386 \
acl \
@@ -39,7 +40,12 @@ jobs:
- name: Run tests
run: |
- make -j$(nproc) distcheck
+ .github/diag.sh make -j$(nproc) distcheck
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: linux-config.log
+ path: distcheck-*/gen/config.log
macos:
name: macOS
@@ -58,22 +64,21 @@ jobs:
- name: Run tests
run: |
jobs=$(sysctl -n hw.ncpu)
- make -j$jobs distcheck
+ .github/diag.sh make -j$jobs distcheck
freebsd:
name: FreeBSD
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Run tests
- uses: cross-platform-actions/action@v0.24.0
+ uses: cross-platform-actions/action@v0.25.0
with:
operating_system: freebsd
- version: "14.0"
- sync_files: runner-to-vm
+ version: "14.1"
run: |
sudo pkg install -y \
@@ -83,22 +88,26 @@ 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:
+ name: freebsd-config.log
+ path: distcheck-*/gen/config.log
openbsd:
name: OpenBSD
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Run tests
- uses: cross-platform-actions/action@v0.24.0
+ uses: cross-platform-actions/action@v0.25.0
with:
operating_system: openbsd
version: "7.5"
- sync_files: runner-to-vm
run: |
sudo pkg_add \
@@ -107,23 +116,27 @@ jobs:
gmake \
oniguruma
jobs=$(sysctl -n hw.ncpu)
- gmake -j$jobs config
- gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ ./configure MAKE=gmake
+ .github/diag.sh gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: openbsd-config.log
+ path: gen/config.log
netbsd:
name: NetBSD
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Run tests
- uses: cross-platform-actions/action@v0.24.0
+ uses: cross-platform-actions/action@v0.25.0
with:
operating_system: netbsd
version: "10.0"
- sync_files: runner-to-vm
run: |
PATH="/sbin:/usr/sbin:$PATH"
@@ -133,13 +146,18 @@ jobs:
pkgconf \
tcl-expect
jobs=$(sysctl -n hw.ncpu)
- make -j$jobs config
- make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ ./configure
+ .github/diag.sh make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: netbsd-config.log
+ path: gen/config.log
dragonflybsd:
name: DragonFly BSD
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@@ -149,7 +167,6 @@ jobs:
with:
release: "6.4.0"
usesh: true
- copyback: false
prepare: |
pkg install -y \
@@ -165,13 +182,18 @@ jobs:
run: |
chown -R action:action .
jobs=$(sysctl -n hw.ncpu)
- sudo -u action make config
- sudo -u action make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ sudo -u action ./configure
+ sudo -u action .github/diag.sh make -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: dragonfly-config.log
+ path: gen/config.log
omnios:
name: OmniOS
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@@ -181,7 +203,6 @@ jobs:
with:
release: "r151048"
usesh: true
- copyback: false
prepare: |
pkg install \
@@ -198,5 +219,10 @@ jobs:
PATH="/usr/xpg4/bin:$PATH"
chown -R action:staff .
jobs=$(getconf NPROCESSORS_ONLN)
- sudo -u action gmake config
- sudo -u action gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+ sudo -u action ./configure MAKE=gmake
+ sudo -u action .github/diag.sh gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped"
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: omnios-config.log
+ path: gen/config.log
diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml
index 2245f40..e2df25a 100644
--- a/.github/workflows/codecov.yml
+++ b/.github/workflows/codecov.yml
@@ -4,7 +4,7 @@ on: [push]
jobs:
build:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@@ -25,7 +25,7 @@ jobs:
- name: Generate coverage
run: |
- make config GCOV=y
+ ./configure --enable-gcov
make -j$(nproc) check TEST_FLAGS="--sudo"
gcov -abcfpu obj/*/*.o
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index c21fda5..1f2041c 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -13,7 +13,7 @@ on:
jobs:
analyze:
name: Analyze
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
@@ -41,7 +41,7 @@ jobs:
- name: Configure
run: |
- make -j$(nproc) config
+ ./configure
- name: Initialize CodeQL
uses: github/codeql-action/init@v3