Skip to content

Commit e974ff6

Browse files
committed
Run FreeBSD build and test in CI
Uses https://github.com/cross-platform-actions/action, and can be extended to OpenBSD and NetBSD. QEMU on Linux runners appears to be faster than nested virtualisation on macOS runnners (even when the latter ought to use more hardware acceleration).
1 parent d81a25d commit e974ff6

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

Diff for: .github/workflows/bsd.yaml

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Build and Test on *BSD
2+
on:
3+
push:
4+
branches: [ develop ]
5+
pull_request:
6+
branches: [ develop ]
7+
8+
jobs:
9+
# This job takes approximately X to Y minutes
10+
FreeBSD:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v3
14+
with:
15+
submodules: recursive
16+
- name: Prepare ccache
17+
uses: actions/cache@v3
18+
with:
19+
path: .ccache
20+
key: freebsd-13.2-gmake-${{ github.ref }}-${{ github.sha }}-PR
21+
restore-keys: |
22+
freebsd-13.2-gmake-${{ github.ref }}
23+
freebsd-13.2-gmake
24+
- name: ccache environment
25+
run: |
26+
echo "CCACHE_BASEDIR=$PWD" >> $GITHUB_ENV
27+
echo "CCACHE_DIR=$PWD/.ccache" >> $GITHUB_ENV
28+
- name: Build and Test
29+
uses: cross-platform-actions/[email protected]
30+
with:
31+
operating_system: freebsd
32+
version: '13.2'
33+
hypervisor: qemu
34+
run: |
35+
echo "Fetch dependencies"
36+
sudo pkg install -y bash gmake git www/p5-libwww python python3 patch flex bison ccache parallel cvc5 z3
37+
echo "Fetch JBMC dependencies"
38+
sudo pkg install -y openjdk8 wget maven
39+
echo "Zero ccache stats and limit in size"
40+
setenv CCACHE_BASEDIR $PWD
41+
setenv CCACHE_DIR $PWD/.ccache
42+
ccache -z --max-size=500M
43+
ccache -p
44+
echo "Build with gmake"
45+
# don't do JBMC as to keep the overall time in check
46+
gmake -C src minisat2-download
47+
gmake -C src -j2 CXX="ccache clang++"
48+
# gmake -C jbmc/src setup-submodules
49+
# gmake -C jbmc/src -j2 CXX="ccache clang++"
50+
gmake -C unit "CXX=ccache clang++"
51+
# gmake -C jbmc/unit "CXX=ccache clang++"
52+
echo "Print ccache stats"
53+
ccache -s
54+
echo "Checking completeness of help output"
55+
scripts/check_help.sh clang++
56+
echo "Run unit tests"
57+
gmake -C unit test
58+
# gmake -C jbmc/unit test
59+
echo "Running expected failure tests"
60+
set histchars
61+
gmake TAGS='[!shouldfail]' -C unit test
62+
# gmake TAGS='[!shouldfail]' -C jbmc/unit test
63+
echo "Run regression tests"
64+
gmake -C regression/cbmc test
65+
# gmake -C regression test-parallel JOBS=2
66+
# gmake -C regression/cbmc test-paths-lifo
67+
# env PATH=$PATH:`pwd`/src/solvers gmake -C regression/cbmc test-cprover-smt2
68+
# # gmake -C jbmc/regression test-parallel JOBS=2

0 commit comments

Comments
 (0)