Prevent crash on unclean disconnect if abandoned IPC call returns int… #127
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| build-netbsd: | |
| runs-on: ubuntu-latest | |
| name: build • netbsd ${{ matrix.release }} | |
| defaults: | |
| run: | |
| shell: netbsd {0} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Test all supported releases. | |
| # See https://www.netbsd.org/releases/. | |
| include: | |
| - release: 9.4 | |
| capnproto-cppflags: 'CPPFLAGS="-DKJ_NO_EXCEPTIONS=0 -DKJ_USE_KQUEUE=0"' | |
| - release: 10.1 | |
| capnproto-cppflags: 'CPPFLAGS="-DKJ_NO_EXCEPTIONS=0"' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Start NetBSD VM | |
| uses: vmactions/netbsd-vm@v1 | |
| with: | |
| release: ${{ matrix.release }} | |
| # The installed compiler version must match the CXX variable | |
| # defined in `ci/configs/netbsd.bash`. | |
| prepare: | | |
| pkg_add cmake ninja-build gcc14 | |
| # capnproto prerequisites. | |
| # See the following "Install capnproto" step. | |
| run: | | |
| set -e | |
| pkg_add digest libtool-base mktools pkgconf cwrappers | |
| pkg_admin -K /usr/pkg/pkgdb fetch-pkg-vulnerabilities | |
| cd /usr | |
| cvs -danoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P \ | |
| pkgsrc/devel/capnproto \ | |
| pkgsrc/devel/libtool-base \ | |
| pkgsrc/devel/pkgconf \ | |
| pkgsrc/devel/zlib \ | |
| `# gcc15 is referenced here because the pkgsrc framework requires lang/gcc15/version.mk to exist` \ | |
| `# during the "make install" step below, even though we compile our project with gcc14.` \ | |
| pkgsrc/lang/gcc15 \ | |
| pkgsrc/mk \ | |
| pkgsrc/pkgtools \ | |
| pkgsrc/security/openssl \ | |
| pkgsrc/sysutils/install-sh/files | |
| sync: 'rsync' | |
| copyback: false | |
| - name: Install capnproto | |
| run: | | |
| cd /usr/pkgsrc/devel/capnproto/ | |
| unset PKG_PATH | |
| make ${{ matrix.capnproto-cppflags }} install | |
| - name: Run CI script | |
| run: | | |
| cd ${{ github.workspace }} | |
| CI_CONFIG="ci/configs/netbsd.bash" bash ci/scripts/ci.sh | |
| build-openbsd: | |
| runs-on: ubuntu-latest | |
| name: build • openbsd | |
| defaults: | |
| run: | |
| shell: openbsd {0} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Start OpenBSD VM | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| prepare: | | |
| pkg_add -v cmake ninja bash capnproto | |
| sync: 'rsync' | |
| copyback: false | |
| - name: Run CI script | |
| run: | | |
| cd ${{ github.workspace }} | |
| CI_CONFIG="ci/configs/openbsd.bash" bash ci/scripts/ci.sh | |
| build-freebsd: | |
| runs-on: ubuntu-latest | |
| name: build • freebsd | |
| defaults: | |
| run: | |
| shell: freebsd {0} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Start FreeBSD VM | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| prepare: | | |
| pkg install -y cmake ninja bash capnproto | |
| sync: 'rsync' | |
| copyback: false | |
| - name: Run CI script | |
| run: | | |
| cd ${{ github.workspace }} | |
| CI_CONFIG="ci/configs/freebsd.bash" bash ci/scripts/ci.sh | |
| build-macos: | |
| runs-on: macos-latest | |
| name: build • macos | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install dependencies | |
| env: | |
| HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 | |
| run: | | |
| brew install --quiet ninja capnp | |
| - name: Run CI script | |
| run: | | |
| CI_CONFIG="ci/configs/macos.bash" bash ci/scripts/ci.sh | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| NIX_EXTRA_CONFIG_ACT: | | |
| sandbox = false | |
| filter-syscalls = false | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: [default, llvm, gnu32, sanitize, olddeps] | |
| name: build • ${{ matrix.config }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install Nix | |
| uses: cachix/install-nix-action@v31 # 2025-05-27, from https://github.com/cachix/install-nix-action/tags | |
| with: | |
| nix_path: nixpkgs=channel:nixos-25.05 # latest release | |
| # Act executes inside an unprivileged container (Docker or Podman), | |
| # so KVM support isn't available. | |
| enable_kvm: "${{ github.actor != 'nektos/act' }}" | |
| extra_nix_config: ${{ github.actor == 'nektos/act' && env.NIX_EXTRA_CONFIG_ACT || '' }} | |
| - name: Run CI script | |
| env: | |
| CI_CONFIG: ci/configs/${{ matrix.config }}.bash | |
| run: ci/scripts/run.sh |