mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-28 10:11:58 +01:00
The release playbook runs the slow platform checks nightly and on every push to release, so a regression shows up before a release is published. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
2.0 KiB
YAML
41 lines
2.0 KiB
YAML
# Builds and tests the workspace on FreeBSD, inside a FreeBSD VM on a Linux runner
|
|
# (GitHub has no FreeBSD runners). GPU tests skip themselves when the VM has no adapter.
|
|
# It then runs packaging/freebsd/package.sh, the script the release job runs, and checks the
|
|
# tarball, so a broken FreeBSD package fails here before it can fail a release. Nothing is
|
|
# uploaded and no secrets are used.
|
|
name: FreeBSD
|
|
|
|
# The VM build takes one to several hours, so it runs nightly on main rather than on every push
|
|
# or dependency change: a drifted dependency still shows up within a day. PRs that change the
|
|
# FreeBSD packaging itself still run it.
|
|
on:
|
|
push:
|
|
branches: [release]
|
|
schedule:
|
|
- cron: "17 2 * * *"
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/freebsd.yml
|
|
- packaging/freebsd/**
|
|
- packaging/env.sh
|
|
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:
|
|
craft-fonts-ref: abb83316d96aa59c1cf64784289e378fe9fa5695
|
|
cargo-build-extra-args: "--features heif"
|
|
# The VM's software Vulkan driver crashes (SIGSEGV) when several tests set up a device at
|
|
# once, so photocraft-gpu's tests run one at a time, like ui-egui's integration tests.
|
|
custom-test-command: "CARGO_PROFILE_DEV_DEBUG=0 cargo test --workspace --locked --features heif --exclude photocraft-ui-egui --exclude photocraft-gpu && CARGO_PROFILE_DEV_DEBUG=0 cargo test -p photocraft-gpu --locked -- --test-threads=1 && CARGO_PROFILE_DEV_DEBUG=0 cargo test -p photocraft-ui-egui --locked --lib && CARGO_PROFILE_DEV_DEBUG=0 cargo test -p photocraft-ui-egui --locked --doc && CARGO_PROFILE_DEV_DEBUG=0 cargo test -p photocraft-ui-egui --locked --test '*' -- --test-threads=1"
|
|
run-package-check: true
|