diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35f959c5b..63f3fb7ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -119,6 +119,79 @@ jobs: - name: Test run: cd build && ctest -C Release -j3 --output-on-failure + freebsd: + name: FreeBSD + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + submodules: true + + - name: Prepare + run: ./autogen.sh + + - name: Build & test + uses: vmactions/freebsd-vm@debf37ca7b7fa40e19c542ef7ba30d6054a706a4 # v1.1.5 + with: + usesh: true + run: | + set -e + ./configure --enable-jit --enable-pcre2-16 --enable-pcre2-32 + make -j3 CPPFLAGS='-Wall -Wextra -Werror' + make check + + solaris: + name: Solaris + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + submodules: true + + - name: Transfer Oracle Studio certificates + env: + PKG_ORACLE_COM_CERTIFICATE_PEM: ${{ secrets.PKG_ORACLE_COM_CERTIFICATE_PEM }} + PKG_ORACLE_COM_KEY_PEM: ${{ secrets.PKG_ORACLE_COM_KEY_PEM }} + run: | + printenv PKG_ORACLE_COM_CERTIFICATE_PEM > pkg.oracle.com.certificate.pem + printenv PKG_ORACLE_COM_KEY_PEM > pkg.oracle.com.key.pem + + - name: Prepare + run: ./autogen.sh + + - name: Build & test + uses: vmactions/solaris-vm@a89b9438868c70db27e41625f0a5de6ff5e90809 # v1.1.0 + with: + usesh: true + # Seriously! Solaris is the only OS to actually ship without a C + # compiler, and not even to provide a simple download to get one! + # You have to actually register with Oracle to get an X.509 + # certificate before you can even download their compiler. Whatever. + prepare: | + cp "$GITHUB_WORKSPACE/pkg.oracle.com.key.pem" /root/pkg.oracle.com.key.pem + cp "$GITHUB_WORKSPACE/pkg.oracle.com.certificate.pem" /root/pkg.oracle.com.certificate.pem + sudo pkg set-publisher \ + -k /root/pkg.oracle.com.key.pem \ + -c /root/pkg.oracle.com.certificate.pem \ + -G "*" -g https://pkg.oracle.com/solarisstudio/release solarisstudio + pkg install developer/build/make system/header + pkg install --accept developerstudio-126/cc + + run: | + set -e + PATH=/opt/developerstudio12.6/bin:"$PATH" + export PATH + CC=cc + export CC + + ./configure --enable-jit --enable-pcre2-16 --enable-pcre2-32 + make CPPFLAGS='-Wall -Wextra -Werror' + make check + coverage: name: Code coverage runs-on: ubuntu-latest