-
-
Notifications
You must be signed in to change notification settings - Fork 4
171 lines (159 loc) · 9.26 KB
/
build_push.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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
name: Build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'master'
- '!ci_test_*'
tags-ignore:
- '*'
pull_request:
branches:
- 'master'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: rustup target add aarch64-unknown-linux-gnu x86_64-unknown-linux-gnu i686-unknown-linux-gnu powerpc-unknown-linux-gnu wasm32-unknown-unknown
- run: RUSTFLAGS="-C target-feature=+neon" cargo build --target aarch64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+neon" cargo build --features nightly_f16 --target aarch64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+avx2" cargo build --target i686-unknown-linux-gnu
- run: cargo build --target powerpc-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+avx2" cargo build --features nightly_avx512 --target x86_64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+avx2" cargo build --features nightly_f16 --target x86_64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+simd128" cargo build --target wasm32-unknown-unknown
clippy_x86:
name: Clippy x86 Stable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy --all-features -- -D warnings
clippy_x86_nightly:
name: Clippy x86 Nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: rustup component add clippy
- run: cargo clippy --all-features -- -D warnings
clippy_arm:
name: Clippy ARM
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy -- -D warnings
tests_arm:
name: Testing ARM
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo test --features rdp
- run: cargo test --no-default-features --features nightly_f16,rdp
- run: cargo test --no-default-features --features fast_mode,professional_mode,nightly_f16,rdp
- run: cargo test --features fast_mode,professional_mode,nightly_f16,rdp
tests_x86:
name: Testing x86
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo test --features rdp
- run: cargo test --features fast_mode,professional_mode,nightly_f16,rdp
- run: cargo test --no-default-features --features nightly_f16,rdp
- run: cargo test --no-default-features --features fast_mode,professional_mode,sse,nightly_f16,rdp
- run: cargo test --no-default-features --features fast_mode,professional_mode,avx,nightly_f16,rdp
- run: cargo test --no-default-features --features fast_mode,professional_mode,nightly_f16,rdp
fuzz_arm:
name: Fuzzing ARM
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: cargo install cargo-fuzz
- run: cargo fuzz run rgb_to_yuv --no-default-features -- -max_total_time=6
- run: cargo fuzz run rgb_to_nv --no-default-features -- -max_total_time=6
- run: cargo fuzz run rgb_to_y --no-default-features -- -max_total_time=6
- run: cargo fuzz run rgb16_to_yuv16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run rgb16_to_nv16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv_to_rgb --no-default-features -- -max_total_time=6
- run: cargo fuzz run gbr_to_rgb --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv_nv_to_rgb --no-default-features -- -max_total_time=6
- run: cargo fuzz run y_to_rgb --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb_f16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv16_to_ar30 --no-default-features -- -max_total_time=6
- run: cargo fuzz run y16_to_rgb16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv_to_yuyu2 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv_nv16_to_rgb16 --no-default-features -- -max_total_time=6
- run: cargo fuzz run yuv_nv10_to_rgb --no-default-features -- -max_total_time=6
- run: cargo fuzz run shuffle --no-default-features -- -max_total_time=6
- run: cargo fuzz run rgb_to_f16 --no-default-features -- -max_total_time=6
fuzz_arm_i8mm:
name: Fuzzing ARM I8MM
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: cargo install cargo-fuzz
- run: cargo fuzz run rgb_to_yuv --no-default-features --features nightly_i8mm -- -max_total_time=6
- run: cargo fuzz run rgb_to_nv --no-default-features --features nightly_i8mm -- -max_total_time=6
fuzz_arm_rdm:
name: Fuzzing ARM RDM
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo install cargo-fuzz
- run: cargo fuzz run rgb_to_yuv --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run rgb_to_nv --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run rgb_to_y --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run rgb16_to_yuv16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run rgb16_to_nv16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv_to_rgb --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run gbr_to_rgb --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv_nv_to_rgb --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run y_to_rgb --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb_f16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv16_to_ar30 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run y16_to_rgb16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv_to_yuyu2 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv_nv16_to_rgb16 --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run yuv_nv10_to_rgb --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run shuffle --no-default-features --features rdm -- -max_total_time=6
- run: cargo fuzz run rgb_to_f16 --no-default-features --features rdm -- -max_total_time=6
fuzz_x86:
name: Fuzzing x86
runs-on: ubuntu-latest
strategy:
matrix:
feature: [ sse, avx ]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo install cargo-fuzz
- run: cargo fuzz run rgb_to_yuv --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rgb_to_nv --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rgb_to_y --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rgb16_to_yuv16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rgb16_to_nv16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv_to_rgb --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run gbr_to_rgb --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv_nv_to_rgb --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run y_to_rgb --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv16_to_rgb_f16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv16_to_ar30 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run y16_to_rgb16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv_to_yuyu2 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv_nv16_to_rgb16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run yuv_nv10_to_rgb --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run shuffle --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rgb_to_f16 --no-default-features --features ${{ matrix.feature }} -- -max_total_time=6
- run: cargo fuzz run rdp --no-default-features --features ${{ matrix.feature }} -- -max_total_time=12