9
9
uses : actions/checkout@v4
10
10
- name : Update Rust
11
11
run : rustup toolchain install stable --profile minimal --no-self-update
12
+ - name : Install MUSL Toolchain
13
+ run : rustup target add x86_64-unknown-linux-musl
14
+ - name : Install MUSL dependencies
15
+ run : sudo apt-get install musl-tools
12
16
- name : Enable Rust Caching
13
17
uses : Swatinem/rust-cache@v2
14
18
- name : Release Build
15
- run : cargo build --release --all
19
+ run : cargo build --release --all --target x86_64-unknown-linux-musl
16
20
- name : Execute Tests
17
- run : cargo test --release --all
21
+ run : cargo test --release --all --target x86_64-unknown-linux-musl
18
22
- name : Run Clippy
19
- run : cargo clippy --release --all --all-targets --all-features --locked -- -D warnings
23
+ run : cargo clippy --release --all --target x86_64-unknown-linux-musl -- all-targets --all-features --locked -- -D warnings
20
24
- name : Check Formatting
21
25
run : cargo fmt --all -- --check
22
26
- uses : actions/upload-artifact@v4
23
27
with :
24
- name : x86_64- linux-gnu
25
- path : target/release/dmarc-report-viewer
28
+ name : linux-x86_64
29
+ path : target/x86_64-unknown-linux-musl/ release/dmarc-report-viewer
26
30
linux_aarch64 :
27
- name : Linux (AArch64 )
31
+ name : Linux (aarch64 )
28
32
runs-on : ubuntu-24.04
29
33
steps :
30
34
- name : Checkout
43
47
run : cross test --release --all --target aarch64-unknown-linux-musl
44
48
- uses : actions/upload-artifact@v4
45
49
with :
46
- name : aarch64- linux-musl
50
+ name : linux-aarch64
47
51
path : target/aarch64-unknown-linux-musl/release/dmarc-report-viewer
48
52
windows_x86_64 :
49
53
name : Windows (x86-64)
63
67
run : cargo test --release --all
64
68
- uses : actions/upload-artifact@v4
65
69
with :
66
- name : x86_64- windows
70
+ name : windows-x86_64
67
71
path : target/release/dmarc-report-viewer.exe
68
72
mac_x86_64 :
69
73
name : Mac (x86-64)
83
87
run : cargo test --release --all --target x86_64-apple-darwin
84
88
- uses : actions/upload-artifact@v4
85
89
with :
86
- name : x86_64- mac
90
+ name : mac-x86_64
87
91
path : target/x86_64-apple-darwin/release/dmarc-report-viewer
88
92
mac_aarch64 :
89
93
name : Mac (aarch64)
@@ -101,10 +105,10 @@ jobs:
101
105
run : cargo test --release --all --target aarch64-apple-darwin
102
106
- uses : actions/upload-artifact@v4
103
107
with :
104
- name : aarch64- mac
108
+ name : mac-aarch64
105
109
path : target/aarch64-apple-darwin/release/dmarc-report-viewer
106
110
docker_linux_x86_64 :
107
- name : Linux Docker (x86-64)
111
+ name : Docker (Linux, x86-64)
108
112
runs-on : ubuntu-24.04
109
113
permissions :
110
114
contents : read
@@ -134,14 +138,8 @@ jobs:
134
138
run : docker save -o dmarc-report-viewer.tar dmarc-report-viewer
135
139
- uses : actions/upload-artifact@v4
136
140
with :
137
- name : x86_64 -linux-docker
141
+ name : docker -linux-x86_64
138
142
path : dmarc-report-viewer.tar
139
- - name : Extract MUSL Binary
140
- run : container_id=$(docker create dmarc-report-viewer) && docker cp "$container_id:/dmarc-report-viewer" ./dmarc-report-viewer && docker rm "$container_id"
141
- - uses : actions/upload-artifact@v4
142
- with :
143
- name : x86_64-linux-musl
144
- path : dmarc-report-viewer
145
143
release :
146
144
name : Release
147
145
if : startsWith(github.ref, 'refs/tags/')
@@ -156,24 +154,22 @@ jobs:
156
154
uses : actions/download-artifact@v4
157
155
- name : Pack Artifacts for Release
158
156
run : |
159
- zip -r x86_64-windows.zip x86_64-windows
160
- zip -r x86_64-linux-gnu.zip x86_64-linux-gnu
161
- zip -r x86_64-linux-musl.zip x86_64-linux-musl
162
- zip -r aarch64-linux-musl.zip aarch64-linux-musl
163
- zip -r x86_64-mac.zip x86_64-mac
164
- zip -r aarch64-mac.zip aarch64-mac
165
- mv x86_64-linux-docker/dmarc-report-viewer.tar x86_64-linux-docker.tar
157
+ zip -r windows-x86_64.zip windows-x86_64
158
+ zip -r linux-x86_64.zip linux-x86_64
159
+ zip -r linux-aarch64.zip linux-aarch64
160
+ zip -r mac-x86_64.zip mac-x86_64
161
+ zip -r mac-aarch64.zip mac-aarch64
162
+ mv docker-linux-x86_64/dmarc-report-viewer.tar docker-linux-x86_64.tar
166
163
- name : Publish Release
167
164
uses : softprops/action-gh-release@v2
168
165
with :
169
166
body : Release created automatically from git tag ${{github.ref_name}}, see CHANGELOG.md for more details.
170
167
files : |
171
168
CHANGELOG.md
172
169
LICENSE
173
- x86_64-windows.zip
174
- x86_64-linux-gnu.zip
175
- x86_64-linux-musl.zip
176
- aarch64-linux-musl.zip
177
- x86_64-mac.zip
178
- aarch64-mac.zip
179
- x86_64-linux-docker.tar
170
+ windows-x86_64.zip
171
+ linux-x86_64.zip
172
+ linux-aarch64.zip
173
+ mac-x86_64.zip
174
+ mac-aarch64.zip
175
+ docker-linux-x86_64.tar
0 commit comments