1
- name : Rust
1
+ name : Check
2
2
3
3
on :
4
- push :
5
- branches : [ "master" ]
6
4
pull_request :
7
- branches : [ "master" ]
8
-
9
- env :
10
- CARGO_TERM_COLOR : always
5
+ push :
6
+ branches :
7
+ - master
11
8
12
9
jobs :
13
- build :
10
+ style :
11
+ name : Check Style
12
+ runs-on : ubuntu-latest
14
13
14
+ steps :
15
+ - uses : actions/checkout@v4
16
+
17
+ - name : Rustfmt Check
18
+ run : cargo fmt --all --check
19
+
20
+ clippy :
21
+ name : Clippy Check of ${{ matrix.impl.name }}
15
22
runs-on : ubuntu-latest
16
23
24
+ strategy :
25
+ matrix :
26
+ impl :
27
+ - name : AES-NI
28
+ target : x86_64-unknown-linux-gnu
29
+ caps : X86_64_UNKNOWN_LINUX_GNU
30
+ target-features : +sse4.1,+aes
31
+ - name : AES-NI with VAES
32
+ target : x86_64-unknown-linux-gnu
33
+ caps : X86_64_UNKNOWN_LINUX_GNU
34
+ target-features : +vaes
35
+ - name : AES-NI with VAES and AVX-512
36
+ target : x86_64-unknown-linux-gnu
37
+ caps : X86_64_UNKNOWN_LINUX_GNU
38
+ target-features : +vaes,+avx512f
39
+ - name : Neon
40
+ target : aarch64-unknown-linux-gnu
41
+ caps : AARCH64_UNKNOWN_LINUX_GNU
42
+ target-features : +aes
43
+ - name : RV64
44
+ target : riscv64gc-unknown-linux-gnu
45
+ caps : RISCV64GC_UNKNOWN_LINUX_GNU
46
+ target-features : +zkne,+zknd
47
+ - name : RV32
48
+ target : riscv32i-unknown-none-elf
49
+ caps : RISCV32I_UNKNOWN_NONE_ELF
50
+ target-features : +zkne,+zknd
51
+ - name : Software
52
+ target : x86_64-unknown-linux-gnu
53
+ caps : X86_64_UNKNOWN_LINUX_GNU
54
+ target-features : ' '
17
55
steps :
18
- - uses : actions/checkout@v3
19
- - name : Build
20
- run : cargo build --verbose
21
- - name : Run tests
22
- run : cargo test --verbose
56
+ - uses : actions/checkout@v3
57
+
58
+ - run : ${{ format('echo "CARGO_TARGET_{0}_RUSTFLAGS=-C target-feature={1}" >> $GITHUB_ENV', matrix.impl.caps, matrix.impl.target-features) }}
59
+
60
+ - name : Install Rust
61
+ uses : actions-rs/toolchain@v1
62
+ with :
63
+ toolchain : nightly
64
+ target : ${{ matrix.impl.target }}
65
+ components : clippy
66
+ profile : minimal
67
+ override : true
68
+
69
+ - name : Clippy Check
70
+ run : cargo clippy --target ${{ matrix.impl.target }} --features=nightly --no-deps -- -D clippy::pedantic
71
+
72
+ test-aesni :
73
+ strategy :
74
+ matrix :
75
+ channel : [ stable, beta, nightly ]
76
+ name : Test of AESNI with ${{ matrix.channel }}
77
+ uses : ./.github/workflows/runtest.yml
78
+ with :
79
+ arch : x86_64
80
+ target : x86_64-unknown-linux-gnu
81
+ channel : ${{ matrix.channel }}
82
+ target-features : +sse4.1,+aes
83
+
84
+ test-aesni-vaes :
85
+ name : Test of AESNI with VAES
86
+ uses : ./.github/workflows/runtest.yml
87
+ with :
88
+ arch : x86_64
89
+ target : x86_64-unknown-linux-gnu
90
+ channel : nightly
91
+ target-features : +vaes
92
+
93
+ test-aesni-vaes-avx512 :
94
+ name : Test of AESNI with VAES and AVX512F
95
+ uses : ./.github/workflows/runtest.yml
96
+ with :
97
+ arch : x86_64
98
+ target : x86_64-unknown-linux-gnu
99
+ channel : nightly
100
+ target-features : +vaes,+avx512f
101
+
102
+ test-neon :
103
+ strategy :
104
+ matrix :
105
+ channel : [ stable, beta, nightly ]
106
+ name : Test of Neon on AArch64 with ${{ matrix.channel }}
107
+ uses : ./.github/workflows/runtest.yml
108
+ with :
109
+ arch : aarch64
110
+ target : aarch64-unknown-linux-gnu
111
+ channel : ${{ matrix.channel }}
112
+ target-features : +aes
113
+
114
+ test-armv8 :
115
+ name : Test of Neon on ARMv8
116
+ uses : ./.github/workflows/runtest.yml
117
+ with :
118
+ arch : arm
119
+ target : armv7-unknown-linux-gnueabihf
120
+ channel : nightly
121
+ target-features : +aes
122
+
123
+ test-riscv64 :
124
+ name : Test of RiscV-64
125
+ uses : ./.github/workflows/runtest.yml
126
+ with :
127
+ arch : riscv64
128
+ target : riscv64gc-unknown-linux-gnu
129
+ channel : nightly
130
+ target-features : +zkne,+zknd
131
+
132
+ test-software :
133
+ strategy :
134
+ matrix :
135
+ channel : [ stable, beta, nightly ]
136
+ name : Test of Software Implementation with ${{ matrix.channel }}
137
+ uses : ./.github/workflows/runtest.yml
138
+ with :
139
+ arch : x86_64
140
+ target : x86_64-unknown-linux-gnu
141
+ channel : ${{ matrix.channel }}
0 commit comments