-
Notifications
You must be signed in to change notification settings - Fork 118
152 lines (146 loc) · 4.52 KB
/
ci.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: CI
on: [push, pull_request]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rustfmt,clippy
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Rustfmt
run: cargo +nightly fmt --all -- --check
- name: Clippy
run: cargo clippy --features full-doc
test:
name: Test
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
name:
- stable
- beta
- nightly
- macOS
- Windows
- driver only
- gateway only
- simd json
include:
- name: beta
toolchain: beta
- name: nightly
toolchain: nightly
- name: macOS
os: macOS-latest
dont-test: true
- name: Windows
os: windows-latest
dont-test: true
- name: driver only
features: driver rustls
dont-test: true
- name: gateway only
features: gateway serenity rustls
dont-test: true
- name: simd json
features: simd-json serenity rustls driver gateway serenity?/simd_json
rustflags: -C target-cpu=native
dont-test: true
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain || 'stable' }}
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
- name: Install yt-dlp (Unix)
if: runner.os != 'Windows'
run: |
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
- name: Install yt-dlp (Windows)
if: runner.os == 'Windows'
run: choco install yt-dlp
- name: Set RUSTFLAGS
if: runner.os != 'Windows'
run: echo "RUSTFLAGS=${{ matrix.rustflags || '' }}" >> $GITHUB_ENV
- name: Build all features
if: matrix.features == ''
run: cargo build --features full-doc
- name: Test all features
if: ${{ !matrix.dont-test && matrix.features == '' }}
run: cargo test --features full-doc
- name: Build some features
if: matrix.features
run: cargo build --no-default-features --features "${{ matrix.features }}"
- name: Test some features
if: ${{ !matrix.dont-test && matrix.features }}
run: cargo test --no-default-features --features "${{ matrix.features }}"
doc:
name: Build docs
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Build docs
env:
RUSTDOCFLAGS: -D broken_intra_doc_links
run: |
cargo doc --no-deps --features full-doc
examples:
name: Examples
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
workspaces: examples
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Build serenity/voice
working-directory: examples
run: cargo build -p voice
- name: Build serenity/voice_events_queue
working-directory: examples
run: cargo build -p voice_events_queue
- name: Build serenity/voice_receive
working-directory: examples
run: cargo build -p voice_receive
- name: Build serenity/voice_cached_audio
working-directory: examples
run: cargo build -p voice_cached_audio
- name: Build twilight
working-directory: examples
run: cargo build -p twilight