Skip to content

Commit 7f3fa69

Browse files
committed
ci: test building and linking on FreeBSD and OpenBSD
1 parent 425e0ee commit 7f3fa69

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

‎.github/workflows/ci.yaml‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,58 @@ jobs:
4242

4343
- name: Build
4444
run: zig build ${{ matrix.build-options }} --summary all
45+
46+
bsd:
47+
name: ${{ matrix.os }}
48+
runs-on: ubuntu-latest
49+
timeout-minutes: 30
50+
strategy:
51+
fail-fast: false
52+
matrix:
53+
zig-version: [0.16.0]
54+
os: [freebsd, openbsd]
55+
include:
56+
- os: freebsd
57+
packages: pkg install -y curl
58+
- os: openbsd
59+
packages: pkg_add -I curl xz # OpenBSD tar cannot decompress .tar.xz
60+
steps:
61+
- name: Checkout
62+
uses: actions/checkout@v6
63+
64+
- name: Build (FreeBSD)
65+
if: matrix.os == 'freebsd'
66+
uses: vmactions/freebsd-vm@v1.5.9
67+
with: &bsd_build
68+
cache-after-prepare: true
69+
copyback: false
70+
prepare: |
71+
${{ matrix.packages }}
72+
mkdir -p /usr/local/zig
73+
curl -fsSL https://ziglang.org/download/${{ matrix.zig-version }}/zig-x86_64-${{ matrix.os }}-${{ matrix.zig-version }}.tar.xz -o /usr/local/zig/zig.tar.xz
74+
run: |
75+
set -e
76+
xzcat /usr/local/zig/zig.tar.xz | tar -xf - -C /usr/local/zig/
77+
export PATH="/usr/local/zig/zig-x86_64-${{ matrix.os }}-${{ matrix.zig-version }}:$PATH"
78+
79+
cat > ./uv_test.c <<'EOF'
80+
#include <uv.h>
81+
int main(void) {
82+
uv_loop_t* loop = uv_default_loop();
83+
uv_interface_address_t* addrs;
84+
int count;
85+
if (uv_interface_addresses(&addrs, &count) == 0)
86+
uv_free_interface_addresses(addrs, count);
87+
return uv_run(loop, UV_RUN_DEFAULT);
88+
}
89+
EOF
90+
91+
zig build --summary all
92+
93+
zig cc -o ./uv_test ./uv_test.c -I zig-out/include -L zig-out/lib -luv
94+
./uv_test
95+
96+
- name: Build (OpenBSD)
97+
if: matrix.os == 'openbsd'
98+
uses: vmactions/openbsd-vm@v1.4.8
99+
with: *bsd_build

0 commit comments

Comments
 (0)