Add a FreeBSD job on GitHub Actions to replace the retired Cirrus CI task - #214
Open
neilpang wants to merge 1 commit into
Open
Add a FreeBSD job on GitHub Actions to replace the retired Cirrus CI task#214neilpang wants to merge 1 commit into
neilpang wants to merge 1 commit into
Conversation
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.
Cirrus CI shut down on 2026-06-01. The last freebsd check-run here is on
603dacf (2026-01-02), and 23 commits have landed since with no FreeBSD
result -- so "Automated CI currently covers macOS, Windows, Ubuntu, Rocky
Linux, and FreeBSD" in the README, and the "FreeBSD 14" line under
Platforms, are no longer true.
This adds .github/workflows/build_freebsd.yml. It runs the same
.ci/unix-build.sh and .ci/unix-test.sh that freebsd_task ran, as a
non-root testuser created the same way, in a FreeBSD VM on a
GitHub-hosted runner. Only cmake is installed, as before.
Verified on my fork. FreeBSD 14.4, 3m49s for the whole job:
Tests run as user: testuser
100% tests passed, 0 tests failed out of 199
Total Test time (real) = 4.63 sec
https://github.com/neilpang/filesystem/actions/runs/33881441561/job/101050809350
release is '14' to match the Platforms list; adding '15' is a one-line
change if you want it.
One observation, not gated and not a regression: the std_filesystem_test
run that unix-test.sh already tolerates with "|| true" reports 4 failed
cases and 9 failed assertions against FreeBSD's libc++. I have not
classified them. Three of the nine:
CHECK( "///,foo,bar" == iterateResult(fs::path("///foo/bar")) )
with expansion: "///,foo,bar" == "/,foo,bar"
CHECK_THROWS_AS( fs::canonical(""), fs::filesystem_error )
because no exception was thrown where one was expected
CHECK( fs::canonical("", ec) == "" )
with expansion: "/home/runner/work/filesystem/filesystem/build" == ""
The rest are directory_entry::refresh(), assign("") and
replace_filename() not throwing where the standard asks. ghc::filesystem
itself is unaffected: ctest is 199/199.
The rockylinux8 and rockylinux9 tasks in .cirrus.yml are dead too. They
would run as containers on a GitHub runner; I left them alone here.