Skip to content

ci(build): add FreeBSD 15.1 & NetBSD 11.0 legs; bump OpenBSD to 7.9 - #15

Merged
kjake merged 2 commits into
customizationsfrom
feat/bsd-matrix-expand
Aug 13, 2026
Merged

ci(build): add FreeBSD 15.1 & NetBSD 11.0 legs; bump OpenBSD to 7.9#15
kjake merged 2 commits into
customizationsfrom
feat/bsd-matrix-expand

Conversation

@kjake

@kjake kjake commented Aug 13, 2026

Copy link
Copy Markdown
Owner

What

Expands the native BSD build matrix from 3 legs to 5:

OS release asset change
FreeBSD 14.3 cloudflared-freebsd14-amd64 kept
FreeBSD 15.1 cloudflared-freebsd15-amd64 new (OPNsense 25.7+ is FreeBSD 15)
NetBSD 10.1 cloudflared-netbsd10-amd64 kept
NetBSD 11.0 cloudflared-netbsd11-amd64 new
OpenBSD 7.9 cloudflared-openbsd7-amd64 bumped from 7.8 (asset name unchanged)

The release: value is now parameterized per matrix entry (${{ matrix.release }}) so a single OS can build multiple versions, and fail-fast: false ensures one leg failing can't cancel the proven ones.

Why

OPNsense's current release is built on FreeBSD 15.1, so a matching freebsd15 binary keeps in-sync while freebsd14 continues to support older installs as long as possible. (These are static CGO_ENABLED=0 Go binaries, so the 14 build likely already runs on 15 — this is explicit version-sync + future-proofing.)

Verification (before adding — to avoid another failed release)

  • vmactions VM images: confirmed conf/15.1.conf, conf/11.0.conf, conf/7.9.conf all exist in the respective vmactions/*-vm actions (the authoritative source; the -builder release assets lag and are not it).
  • NetBSD 11.0 pkgsrc (highest risk — brand-new major): x86_64/11.0/All has 27,462 packages including ruby34-3.4.9nb2 and go-1.26.5, plus every other dep the prepare step installs.
  • OpenBSD 7.9: amd64 packages include ruby-3.4.9p1 and go-1.26.2.
  • FreeBSD 15.1: official per-release pkg repo; identical install list to the working 14.3 leg.

Test plan

  • Dispatch build_unix.yaml for a tag and confirm all 5 legs go green and upload their assets (used here to re-release 2026.8.0 with the freebsd15/netbsd11 binaries).

kjake added 2 commits August 13, 2026 12:14
Parameterize the vmactions `release` per matrix entry so one OS can build
multiple versions, then:
- FreeBSD: keep 14.3, add 15.1 -> cloudflared-freebsd15-amd64 (OPNsense 15)
- NetBSD:  keep 10.1, add 11.0 -> cloudflared-netbsd11-amd64
- OpenBSD: bump 7.8 -> 7.9 (asset name cloudflared-openbsd7-amd64 unchanged)

Also set `fail-fast: false` so a new/older leg failing cannot cancel the
proven ones mid-release.

Verified before adding: vmactions ships conf/{15.1,11.0,7.9}.conf, and the
package sets exist — NetBSD 11.0 pkgsrc has ruby34 + go-1.26.5, OpenBSD 7.9
has ruby-3.4 + go-1.26.
…uby 4.0)

OpenBSD 7.9 makes ruby 4.0 the default; `pkg_add ruby-34` fuzzy-resolved to
ruby-4.0 (gem40, not gem34), so `gem34 install fpm` failed with exit 127.
fpm is never used by the cloudflared build target (only `gmake cloudflared`
runs), so remove the ruby/gem/libffi install entirely — eliminating the
ruby-version-drift failure mode rather than chasing version pins.
@kjake
kjake merged commit 31c40ef into customizations Aug 13, 2026
5 checks passed
@kjake
kjake deleted the feat/bsd-matrix-expand branch August 13, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant