7
7
8
8
jobs :
9
9
update-latest-tag :
10
- runs-on : ubuntu-latest
11
10
name : Update Latest Tag
11
+ runs-on : ubuntu-latest
12
12
env :
13
13
TARGET_RELEASE_ID : 18843342
14
14
GITHUB_ACCESS_TOKEN : " ${{ secrets.GITHUB_TOKEN }}"
@@ -19,67 +19,54 @@ jobs:
19
19
- name : " Update Tag and Title"
20
20
run : " ./.github/scripts/update-tag.bash"
21
21
22
- debian :
23
- name : Debian Latest
22
+ deb :
23
+ name : " Release Latest - ${{ matrix.platform.name }}"
24
+ continue-on-error : true
25
+ strategy :
26
+ matrix :
27
+ platform :
28
+ - name : ubuntu_arm64
29
+ target : aarch64-unknown-linux-gnu
30
+ image : ubuntu:24.04
31
+ - name : ubuntu_amd64
32
+ target : x86_64-unknown-linux-gnu
33
+ image : ubuntu:24.04
34
+
35
+ - name : debian_arm64
36
+ target : aarch64-unknown-linux-gnu
37
+ image : debian:sid-slim
38
+ - name : debian_amd64
39
+ target : x86_64-unknown-linux-gnu
40
+ image : debian:sid-slim
24
41
runs-on : ubuntu-latest
25
42
needs : update-latest-tag
26
43
timeout-minutes : 10
27
- container :
28
- image : ' docker://debian:sid-slim'
29
44
steps :
30
- - uses : actions/checkout@v3
31
- - name : " System Setup"
32
- run : |
33
- apt-get update;
34
- apt-get --assume-yes -f install curl build-essential pkg-config;
35
- env :
36
- DEBIAN_FRONTEND : noninteractive
37
- TZ : " America/St_Johns"
45
+ - uses : actions/checkout@v4
46
+ - name : Cache
47
+ uses : Swatinem/rust-cache@v2
38
48
- uses : dtolnay/rust-toolchain@master
39
49
with :
40
50
toolchain : nightly
41
51
- uses : baptiste0928/cargo-install@v2
42
52
with :
43
53
crate : cargo-deb
44
- - name : " Build Deb"
45
- run : cargo +nightly deb --output "target/debian/debian_amd64-interactive-rebase-tool.deb" -- --features dev
46
- - name : Upload
47
- uses : ncipollo/release-action@v1
48
- with :
49
- tag : latest
50
- allowUpdates : true
51
- artifacts : " target/debian/debian_amd64-interactive-rebase-tool.deb"
52
- artifactErrorsFailBuild : true
53
- artifactContentType : " application/vnd.debian.binary-package"
54
- replacesArtifacts : true
55
- omitBodyDuringUpdate : true
56
- omitDraftDuringUpdate : true
57
- omitNameDuringUpdate : true
58
- makeLatest : false
59
- prerelease : true
60
- updateOnlyUnreleased : true
61
-
62
- ubuntu :
63
- name : Ubuntu Latest
64
- runs-on : ubuntu-latest
65
- needs : update-latest-tag
66
- timeout-minutes : 10
67
- steps :
68
- - uses : actions/checkout@v3
69
- - uses : dtolnay/rust-toolchain@master
54
+ - name : Build
55
+ uses : houseabsolute/actions-rust-cross@v0
70
56
with :
57
+ command : build
58
+ target : ${{ matrix.platform.target }}
71
59
toolchain : nightly
72
- - uses : baptiste0928/cargo-install@v2
73
- with :
74
- crate : cargo-deb
60
+ args : " --release --features dev"
61
+
75
62
- name : " Build Deb"
76
- run : cargo +nightly deb --output "target/debian/ubuntu_amd64 -interactive-rebase-tool.deb" -- --features dev
63
+ run : cargo +nightly deb --no-strip --no-build --target ${{ matrix.platform.target }} -- output "target/git -interactive-rebase-tool-unstable-${{ matrix.platform.name }}.deb"
77
64
- name : Upload
78
65
uses : ncipollo/release-action@v1
79
66
with :
80
67
tag : latest
81
68
allowUpdates : true
82
- artifacts : " target/debian/ubuntu_amd64 -interactive-rebase-tool.deb"
69
+ artifacts : " target/git -interactive-rebase-tool-unstable-${{ matrix.platform.name }} .deb"
83
70
artifactErrorsFailBuild : true
84
71
artifactContentType : " application/vnd.debian.binary-package"
85
72
replacesArtifacts : true
@@ -90,61 +77,60 @@ jobs:
90
77
prerelease : true
91
78
updateOnlyUnreleased : true
92
79
93
- alpine :
94
- name : Alpine Latest
95
- runs-on : ubuntu-latest
80
+ linux-other :
81
+ name : " Release Latest - ${{ matrix.platform.name }}"
82
+ continue-on-error : true
83
+ strategy :
84
+ matrix :
85
+ platform :
86
+ # Alpine
87
+ - name : alpine-arm64
88
+ target : aarch64-unknown-linux-gnu
89
+ features : " zlib-ng-compat"
90
+ - name : alpine-amd64
91
+ target : x86_64-unknown-linux-gnu
92
+ # Arch
93
+ - name : arch-arm64
94
+ target : aarch64-unknown-linux-gnu
95
+ features : " zlib-ng-compat"
96
+ - name : arch-amd64
97
+ target : x86_64-unknown-linux-gnu
98
+ # Fedora
99
+ - name : fedora-arm64
100
+ target : aarch64-unknown-linux-gnu
101
+ features : " zlib-ng-compat"
102
+ - name : fedora-amd64
103
+ target : x86_64-unknown-linux-gnu
104
+ # Raspberry PI
105
+ - name : pi0-1_arm
106
+ target : arm-unknown-linux-gnueabihf
107
+ - name : pi2-4_armv7
108
+ target : armv7-unknown-linux-gnueabihf
109
+ features : " zlib-ng-compat"
110
+ - name : pi5_arm64
111
+ target : aarch64-unknown-linux-gnu
112
+ features : " zlib-ng-compat"
96
113
needs : update-latest-tag
97
- container :
98
- image : ' docker://rust:alpine'
99
- steps :
100
- - uses : actions/checkout@v3
101
- - run : |
102
- apk update
103
- apk upgrade
104
- apk add bash musl-dev zlib-dev zlib-static
105
- - uses : dtolnay/rust-toolchain@master
106
- with :
107
- toolchain : nightly
108
- - name : " Build"
109
- run : |
110
- cargo build --features dev
111
- cp target/debug/interactive-rebase-tool target/debug/alpine_amd64-interactive-rebase-tool
112
- - name : Upload
113
- uses : ncipollo/release-action@v1
114
- with :
115
- tag : latest
116
- allowUpdates : true
117
- artifacts : " target/debug/alpine_amd64-interactive-rebase-tool"
118
- artifactErrorsFailBuild : true
119
- replacesArtifacts : true
120
- omitBodyDuringUpdate : true
121
- omitDraftDuringUpdate : true
122
- omitNameDuringUpdate : true
123
- makeLatest : false
124
- prerelease : true
125
- updateOnlyUnreleased : true
126
-
127
- arch :
128
- name : Arch Latest
129
114
runs-on : ubuntu-latest
130
- needs : update-latest-tag
131
- container :
132
- image : ' docker://archlinux:base-devel'
133
115
steps :
134
- - uses : actions/checkout@v3
135
- - uses : dtolnay/rust-toolchain@master
136
- with :
116
+ - uses : actions/checkout@v4
117
+ - name : Cache
118
+ uses : Swatinem/rust-cache@v2
119
+ - name : Build
120
+ uses : houseabsolute/actions-rust-cross@v0
121
+ with :
122
+ command : build
123
+ target : ${{ matrix.platform.target }}
137
124
toolchain : nightly
138
- - name : " Build"
139
- run : |
140
- cargo build --features dev
141
- cp target/debug/interactive-rebase-tool target/debug/arch_amd64-interactive-rebase-tool
125
+ args : " --features 'dev ${{ matrix.platform.features }}'"
126
+ - name : " Copy"
127
+ run : cp target/${{ matrix.platform.target }}/debug/interactive-rebase-tool target/debug/git-interactive-rebase-tool-unstable-${{ matrix.platform.name }}
142
128
- name : Upload
143
129
uses : ncipollo/release-action@v1
144
130
with :
145
131
tag : latest
146
132
allowUpdates : true
147
- artifacts : " target/debug/arch_amd64 -interactive-rebase-tool"
133
+ artifacts : target/debug/git -interactive-rebase-tool-unstable-${{ matrix.platform.name }}
148
134
artifactErrorsFailBuild : true
149
135
replacesArtifacts : true
150
136
omitBodyDuringUpdate : true
@@ -154,69 +140,16 @@ jobs:
154
140
prerelease : true
155
141
updateOnlyUnreleased : true
156
142
157
- fedora :
158
- name : Fedora Latest
159
- runs-on : ubuntu-latest
160
- needs : update-latest-tag
161
- container :
162
- image : ' docker://fedora:latest'
163
- steps :
164
- - uses : actions/checkout@v3
165
- - run : |
166
- dnf install curl dnf-plugins-core cmake gcc clang make -y
167
- - uses : dtolnay/rust-toolchain@master
168
- with :
169
- toolchain : nightly
170
- - name : " Build"
171
- run : |
172
- cargo build --features dev
173
- cp target/debug/interactive-rebase-tool target/debug/fedora_amd64-interactive-rebase-tool
174
- - name : Upload
175
- uses : ncipollo/release-action@v1
176
- with :
177
- tag : latest
178
- allowUpdates : true
179
- artifacts : " target/debug/fedora_amd64-interactive-rebase-tool"
180
- artifactErrorsFailBuild : true
181
- replacesArtifacts : true
182
- omitBodyDuringUpdate : true
183
- omitDraftDuringUpdate : true
184
- omitNameDuringUpdate : true
185
- makeLatest : false
186
- prerelease : true
187
- updateOnlyUnreleased : true
188
-
189
- macos-amd64 :
190
- name : MacOS amd64 Latest
191
- runs-on : macos-latest
192
- timeout-minutes : 10
193
- needs : update-latest-tag
194
- steps :
195
- - uses : actions/checkout@v3
196
- - uses : dtolnay/rust-toolchain@nightly
197
- with :
198
- toolchain : nightly
199
- - name : " Build"
200
- run : |
201
- cargo build --features dev
202
- cp target/debug/interactive-rebase-tool target/debug/macos-amd64-interactive-rebase-tool
203
- - name : Upload
204
- uses : ncipollo/release-action@v1
205
- with :
206
- tag : latest
207
- allowUpdates : true
208
- artifacts : " target/debug/macos-amd64-interactive-rebase-tool"
209
- artifactErrorsFailBuild : true
210
- replacesArtifacts : true
211
- omitBodyDuringUpdate : true
212
- omitDraftDuringUpdate : true
213
- omitNameDuringUpdate : true
214
- makeLatest : false
215
- prerelease : true
216
- updateOnlyUnreleased : true
217
-
218
- macos-arm :
219
- name : MacOS ARM Latest
143
+ macos :
144
+ name : " Release Latest - macOS_${{ matrix.platform.name }}"
145
+ continue-on-error : true
146
+ strategy :
147
+ matrix :
148
+ platform :
149
+ - name : arm
150
+ target : aarch64-apple-darwin
151
+ - name : intel
152
+ target : x86_64-apple-darwin
220
153
runs-on : macos-latest
221
154
timeout-minutes : 10
222
155
needs : update-latest-tag
@@ -225,17 +158,17 @@ jobs:
225
158
- uses : dtolnay/rust-toolchain@nightly
226
159
with :
227
160
toolchain : nightly
228
- targets : aarch64-apple-darwin
161
+ targets : ${{ matrix.platform.target }}
229
162
- name : " Build"
230
163
run : |
231
- cargo build --target aarch64-apple-darwin --features dev
232
- cp target/aarch64-apple-darwin /debug/interactive-rebase-tool target/aarch64-apple-darwin/debug/macos-arm- interactive-rebase-tool
164
+ cargo build --features dev --target ${{ matrix.platform.target }}
165
+ cp target/${{ matrix.platform.target }} /debug/interactive-rebase-tool target/git- interactive-rebase-tool-unstable-macos_${{ matrix.platform.name }}
233
166
- name : Upload
234
167
uses : ncipollo/release-action@v1
235
168
with :
236
169
tag : latest
237
170
allowUpdates : true
238
- artifacts : " target/aarch64-apple-darwin/debug/macos-arm- interactive-rebase-tool"
171
+ artifacts : target/git- interactive-rebase-tool-unstable-macos_${{ matrix.platform.name }}
239
172
artifactErrorsFailBuild : true
240
173
replacesArtifacts : true
241
174
omitBodyDuringUpdate : true
@@ -246,23 +179,34 @@ jobs:
246
179
updateOnlyUnreleased : true
247
180
248
181
windows :
249
- name : Windows Latest
182
+ name : " Release Latest - Windows_${{ matrix.platform.name }}"
183
+ continue-on-error : true
184
+ strategy :
185
+ matrix :
186
+ platform :
187
+ - name : arm64
188
+ target : aarch64-pc-windows-msvc
189
+ - name : x64
190
+ target : x86_64-pc-windows-msvc
250
191
runs-on : windows-latest
251
192
timeout-minutes : 10
252
193
needs : update-latest-tag
253
194
steps :
254
195
- uses : actions/checkout@v3
255
196
- uses : dtolnay/rust-toolchain@stable
197
+ with :
198
+ toolchain : stable
199
+ targets : ${{ matrix.platform.target }}
256
200
- name : " Build"
257
201
run : |
258
- cargo rustc --target x86_64-pc-windows-msvc --release --bin interactive-rebase-tool
259
- copy target/x86_64-pc-windows-msvc /release/interactive-rebase-tool.exe target/x86_64-pc-windows-msvc/release/windows_amd64- interactive-rebase-tool.exe
202
+ cargo rustc --target ${{ matrix.platform.target }} --release --bin interactive-rebase-tool
203
+ copy target/${{ matrix.platform.target }} /release/interactive-rebase-tool.exe target/git- interactive-rebase-tool-unstable-windows_${{ matrix.platform.name }} .exe
260
204
- name : Upload
261
205
uses : ncipollo/release-action@v1
262
206
with :
263
207
tag : latest
264
208
allowUpdates : true
265
- artifacts : " target/x86_64-pc-windows-msvc/release/windows_amd64- interactive-rebase-tool.exe"
209
+ artifacts : " target/git- interactive-rebase-tool-unstable-windows_${{ matrix.platform.name }} .exe"
266
210
artifactErrorsFailBuild : true
267
211
replacesArtifacts : true
268
212
omitBodyDuringUpdate : true
0 commit comments