43 lines
1.4 KiB
YAML
43 lines
1.4 KiB
YAML
# 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 ./...
|