File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2222 - name : Run tests (macos)
2323 run : sudo "PATH=$PATH" cargo test --verbose
2424 if : runner.os == 'macOS'
25+
26+ build-freebsd :
27+ name : build (FreeBSD)
28+ runs-on : ubuntu-22.04
29+
30+ steps :
31+ - name : Checkout repository
32+ uses : actions/checkout@v4
33+
34+ - name : Install Rust
35+ uses : dtolnay/rust-toolchain@984d158d699777abbaa79de23de3134e60c187fa # stable branch
36+
37+ - name : Cross-compile crate
38+ run : |
39+ wget -q -O cross https://github.com/acj/freebsd-firecracker/releases/download/v0.0.10/cross
40+ chmod +x cross
41+ mv cross /usr/local/bin/cross
42+
43+ cross build --release --target x86_64-unknown-freebsd
44+ cross test --release --no-run --target x86_64-unknown-freebsd
45+
46+ - name : Launch Firecracker VM
47+ uses : acj/freebsd-firecracker-action@v0.1.1
48+ with :
49+ verbose : false
50+ pre-run : |
51+ rm -rf .cargo
52+ ln -s $HOME/.cargo .cargo
53+
54+ include_path="$(mktemp)"
55+ cat <<EOF > $include_path
56+ target
57+ target/x86_64-unknown-freebsd
58+ target/x86_64-unknown-freebsd/release
59+ target/x86_64-unknown-freebsd/release/deps
60+ target/x86_64-unknown-freebsd/release/deps/read_process_memory-*
61+ target/x86_64-unknown-freebsd/release/test
62+ EOF
63+
64+ rsync -r -e "ssh" \
65+ --relative \
66+ --copy-links \
67+ --include-from "$include_path" \
68+ --exclude "*" \
69+ . firecracker:
70+ rm -f "$exclude_path"
71+ run-in-vm : |
72+ mkdir -p /home/runner
73+ ln -s $(pwd)/.cargo /home/runner/.cargo
74+
75+ failed=0
76+ for testbin in $(find target/x86_64-unknown-freebsd/release/deps -type f -perm -u+x ! -name "*.d" -print); do
77+ if ! $testbin; then
78+ failed=1
79+ fi
80+ done
81+
82+ if [ $failed -ne 0 ]; then
83+ exit 1
84+ fi
85+ post-run : " "
You can’t perform that action at this time.
0 commit comments