-
Notifications
You must be signed in to change notification settings - Fork 12
130 lines (121 loc) · 3.97 KB
/
test.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Test
on: [ push, pull_request ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
toolchain: [ "1.72.0", stable, beta, nightly ]
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: -D warnings
steps:
- if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install libasound2-dev
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- name: Build
run: cargo build --all --all-features --verbose
- name: Check Plugin-only Extensions
run: cargo check -p clack-extensions -F "clack-extensions/all-extensions" -F "clack-extensions/clack-plugin" --no-default-features
- name: Check Host-only Extensions
run: cargo check -p clack-extensions -F "clack-extensions/all-extensions" -F "clack-extensions/clack-host" --no-default-features
- name: Check Standalone Extensions
run: cargo check -p clack-extensions -F "clack-extensions/all-extensions" --no-default-features
- name: Check Host Without default features
run: cargo check -p clack-host --no-default-features
- name: Run tests
run: cargo test --all --verbose
clippy:
runs-on: ubuntu-latest
steps:
- run: sudo apt-get install libasound2-dev
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Format
run: cargo fmt --all -- --check
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all --all-features -- -D warnings
clap-validator:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: 'clack'
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Build
run: cd clack; cargo build --release -p clack-plugin-gain -p clack-plugin-polysynth --verbose
- name: Download Clap-Validator
uses: actions/checkout@v4
with:
repository: 'free-audio/clap-validator'
ref: '0.3.2'
path: 'clap-validator'
- name: Validate
run: cd clap-validator; cargo run --release -- validate ../clack/target/release/libclack_plugin_gain.so ../clack/target/release/libclack_plugin_polysynth.so
miri:
runs-on: ubuntu-latest
env:
MIRIFLAGS: "-Zmiri-tree-borrows -Zmiri-backtrace=full -Zmiri-ignore-leaks" # TODO: only ignore leaks for the specific tests that need it
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: miri
- uses: actions-rs/cargo@v1
with:
command: miri
args: setup
- uses: actions-rs/cargo@v1
with:
command: miri
args: test --all --all-features --verbose --exclude clack-host-cpal
rustdoc:
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -D warnings
steps:
- run: sudo apt-get install libasound2-dev
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: doc
args: --all-features --no-deps
cargo-deny:
runs-on: ubuntu-latest
strategy:
matrix:
checks:
- advisories
- bans licenses sources
# Prevent sudden announcement of a new advisory from failing ci:
continue-on-error: ${{ matrix.checks == 'advisories' }}
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check ${{ matrix.checks }}