ci(freebsd): real pkg build via FreeBSD VM + Dockerfile lint#393
Closed
remyluslosius wants to merge 1 commit into
Closed
ci(freebsd): real pkg build via FreeBSD VM + Dockerfile lint#393remyluslosius wants to merge 1 commit into
remyluslosius wants to merge 1 commit into
Conversation
Q2 Workstream H deliverables: - H1 (Dockerfile validation): hadolint on the three .freebsd Dockerfiles. Full runtime build of FreeBSD Docker containers requires OCI v1.3 runtime support, which standard Linux GHA runners don't provide. Lint catches syntax and best-practice issues; runtime build remains explicitly un-validated and the Dockerfile headers now say so clearly. - H1 (compose validation): `docker compose config` on docker-compose.freebsd.yml to parse and validate service wiring. - H3 (pkg build): runs packaging/freebsd/build-pkg.sh inside a real FreeBSD 15.0 VM via vmactions/freebsd-vm@v1. Produces a .pkg artifact and uploads it to the workflow run. Verifies `pkg info -F` can read the manifest. Fixes to make CI possible: - Uncomment the `pkg create` call at the end of build-pkg.sh (was left as a TODO); add artifact verification and error-exit if no .pkg produced. - Remove stale UNTESTED banner from script and Dockerfile headers; replace with precise Validation status describing what is / is not CI-validated. Workflow triggers: push/PR on FreeBSD paths, weekly (Sunday 04:00 UTC) to catch upstream breakage, and manual dispatch. Not added to branch protection required checks; FreeBSD validation is informational.
remyluslosius
added a commit
that referenced
this pull request
Apr 14, 2026
Drops all FreeBSD-related artifacts. Containers stay on the current Linux mix (UBI 9 backend/worker, Alpine db/frontend) and air-gapped deployment remains served by the native RPM/DEB packages. Why dropped: - Standard Linux Docker hosts cannot execute FreeBSD OCI containers; that requires OCI v1.3 with a FreeBSD-aware runtime, which only exists on FreeBSD hosts. Every developer machine and every GitHub Actions Linux runner falls in this category. - GitHub Actions does not provide FreeBSD runners. Self-hosted FreeBSD runners would need to be procured and maintained. - The pkg deliverable (H3) alone did not justify maintaining the container fork. Removed: - docker/Dockerfile.backend.freebsd - docker/Dockerfile.db.freebsd - docker/Dockerfile.frontend.freebsd - docker-compose.freebsd.yml - packaging/freebsd/ (build-pkg.sh + rc.d scripts) BACKLOG.md cleaned of the FreeBSD packaging row. Supersedes PR #393 (FreeBSD CI validation).
Contributor
Author
|
Superseded by PR for FreeBSD removal — no path forward (Linux Docker cannot run FreeBSD OCI containers; no FreeBSD CI runners). All FreeBSD artifacts removed instead. |
3 tasks
remyluslosius
added a commit
that referenced
this pull request
Apr 14, 2026
Drops all FreeBSD-related artifacts. Containers stay on the current Linux mix (UBI 9 backend/worker, Alpine db/frontend) and air-gapped deployment remains served by the native RPM/DEB packages. Why dropped: - Standard Linux Docker hosts cannot execute FreeBSD OCI containers; that requires OCI v1.3 with a FreeBSD-aware runtime, which only exists on FreeBSD hosts. Every developer machine and every GitHub Actions Linux runner falls in this category. - GitHub Actions does not provide FreeBSD runners. Self-hosted FreeBSD runners would need to be procured and maintained. - The pkg deliverable (H3) alone did not justify maintaining the container fork. Removed: - docker/Dockerfile.backend.freebsd - docker/Dockerfile.db.freebsd - docker/Dockerfile.frontend.freebsd - docker-compose.freebsd.yml - packaging/freebsd/ (build-pkg.sh + rc.d scripts) BACKLOG.md cleaned of the FreeBSD packaging row. Supersedes PR #393 (FreeBSD CI validation).
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the two remaining Q2 Workstream H items (H1 and H3).
Summary
Adds
.github/workflows/freebsd-validate.ymlwith three jobs:Dockerfile.*.freebsdfilesdocker compose configondocker-compose.freebsd.ymlpackaging/freebsd/build-pkg.shinside a real FreeBSD 15.0 VM (viavmactions/freebsd-vm@v1), verifies the.pkgartifact is produced, uploads it to the runHonest scope
Genuinely validated:
docker compose config)pkg createproduces.pkgfile,pkg info -Freads it)Still NOT validated (and the headers now say so):
FROM freebsd/freebsd:15.0-RELEASEimage requires OCI v1.3 FreeBSD-aware runtime, which Linuxdocker buildxcan't provide. Would need either a FreeBSD host runner or FreeBSD container support in GHA Linux runners. Out of scope until one of those exists.Changes
.github/workflows/freebsd-validate.ymldocker/Dockerfile.backend.freebsddocker/Dockerfile.db.freebsddocker/Dockerfile.frontend.freebsdpackaging/freebsd/build-pkg.shpkg createcall (was left as TODO); add artifact verification; remove stale UNTESTED bannerTrigger matrix
Not added to branch-protection required checks — FreeBSD is an alternative deployment target, not the default. Breaking FreeBSD should not block general development velocity but should be fixed soon after detection (hence the weekly schedule).
Runtime cost
dockerfile-lint+compose-validate: <1 min on Linux runnerfreebsd-pkg-build: ~8-12 min (VM boot ~4 min, pkg install ~2 min, build ~2-6 min)Triggering only on FreeBSD-path changes keeps the cost scoped to the ~5% of PRs that actually touch this surface.
Test plan
pkg info -Foutput confirms the package manifest is valid