-
Notifications
You must be signed in to change notification settings - Fork 27
/
.cirrus.yml
114 lines (104 loc) · 3.23 KB
/
.cirrus.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
############################################################################
# Cirrus workflow for testing on (Free)BSD.
#
# References:
# - https://cirrus-ci.org/guide/writing-tasks/
# - https://github.com/tokio-rs/tokio/blob/master/.cirrus.yml
# - https://github.com/nix-rust/nix/blob/master/.cirrus.yml
# - https://github.com/jakewilliami/HiddenFiles.jl/blob/master/.cirrus.yml
#
# TODO:
# - Implement tests for other BSD OS's (will need to handle setup
# differently for Tier 3 support OS's)
############################################################################
# Specify container (FreeBSD)
#
# References:
# - https://cirrus-ci.org/guide/writing-tasks/#execution-environment
# - https://cirrus-ci.org/guide/FreeBSD/
freebsd_instance:
image: freebsd-13-1-release-amd64
# Set up environment variables
env:
# The minimum supported Rust version (MSRV)
# https://github.com/foresterre/cargo-msrv
TOOLCHAIN: 1.56.1
# Define set up procedure by downloading Rustup (to consume later)
setup_common: &SETUP
setup_script:
- kldload mqueuefs
- fetch https://sh.rustup.rs -o rustup.sh
- sh rustup.sh -y --profile=minimal --default-toolchain $TOOLCHAIN
- rm rustup.sh
- . $HOME/.cargo/env || true
- rustup --version
- cargo -Vv
- rustc -Vv
- ifconfig
# Cache the Cargo directory between runs
cargo_cache:
folder: $CARGO_HOME/registry
fingerprint_script: cat Cargo.lock || echo ""
# Test Cargo Build
task:
name: "Builds on FreeBSD 13"
<<: *SETUP
env:
RUSTFLAGS: "-D warnings"
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN build --release --all-targets
before_cache_script: rm -rf $CARGO_HOME/registry/index
# Run Unit Tests
task:
name: "Runs \"cargo test\" on FreeBSD 13"
<<: *SETUP
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: -D warnings
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN test --all --all-features -- --nocapture
- cargo +$TOOLCHAIN doc --no-deps
before_cache_script: rm -rf $CARGO_HOME/registry/index
# Run example
task:
name: "Runs \"cargo run --example demo\" on FreeBSD 13"
<<: *SETUP
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: -D warnings
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN run --example demo --all-features
before_cache_script: rm -rf $CARGO_HOME/registry/index
# Test Cargo Clippy
task:
name: "Runs \"cargo clippy\" on FreeBSD 13"
<<: *SETUP
install_script:
- . $HOME/.cargo/env || true
- rustup component add --toolchain $TOOLCHAIN clippy
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN clippy --all-targets
before_cache_script: rm -rf $CARGO_HOME/registry/index
# Test Cargo Fmt
task:
name: "Runs \"cargo fmt\" on FreeBSD 13"
<<: *SETUP
install_script:
- . $HOME/.cargo/env || true
- rustup +$TOOLCHAIN component add rustfmt
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN fmt --all -- --check
before_cache_script: rm -rf $CARGO_HOME/registry/index
# Test Cargo Publish
task:
name: "Runs \"cargo publish --dry-run\" on FreeBSD 13"
<<: *SETUP
test_script:
- . $HOME/.cargo/env || true
- cargo +$TOOLCHAIN publish --dry-run
before_cache_script: rm -rf $CARGO_HOME/registry/index