# FreeBSD build and package check in a QEMU VM. name: FreeBSD # The VM build is slow, so it runs nightly on main and on pushes to `release`, not on every pull # request: a drifted dependency still shows up within a day, and always before a release ships. # PRs that change the FreeBSD workflow or packaging itself still run it. on: push: branches: [release] pull_request: paths: - .github/workflows/freebsd.yml - packaging/freebsd/** - packaging/env.sh schedule: - cron: "17 4 * * *" workflow_dispatch: concurrency: group: freebsd-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: freebsd: # Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos. uses: storytold/craft-common-actions/.github/workflows/freebsd.yml@main with: require-craft-fonts: true craft-fonts-ref: b076417b5880bd4154bd22f00695b1d28c6bea83 run-package-check: true # The test builds of this workspace's largest crates (engine, ui-egui) need more than the # VM's 12 GB when two compile at once: the build was killed (exit 137) every night with # four jobs and again with two. One rustc at a time; it still uses every core. cargo-build-extra-args: "-j 1" cargo-test-extra-args: "-j 1"