# FreeBSD compile gates. Dispatched by hand, never on a push. # # The debugger's ptrace surface and the JIT substrate are the two # FreeBSD-portable layers the tree carries; the forge has no FreeBSD runner, # so they can only be compile-gated, and three foreign-GOOS builds of the # whole module are minutes of one-core work the push pipeline's budget cannot # carry. The push pipeline stays fast and light; this workflow is the # deliberate run, before a release or after touching the ported layers. # Running the ptrace suite itself needs real FreeBSD hardware. # # A dispatched workflow takes no concurrency block: it is one deliberate run. name: FreeBSD build on: workflow_dispatch: env: # One core: parallelism buys no speed here and costs memory the box does not have. GOFLAGS: -p=1 GOMAXPROCS: "2" jobs: build: runs-on: fedora timeout-minutes: 10 steps: - uses: actions/checkout@v7 - uses: actions/setup-go@v6 with: # The module is the source of truth for the version, so it cannot drift. go-version-file: go.mod cache: true - name: FreeBSD build (amd64) run: GOOS=freebsd GOARCH=amd64 go build ./... - name: FreeBSD build (arm64) run: GOOS=freebsd GOARCH=arm64 go build ./... - name: FreeBSD build (riscv64) run: GOOS=freebsd GOARCH=riscv64 go build ./...