1
- name : 🐧 Linux GUI
1
+ name : 🐧 Linux
2
2
on :
3
3
push :
4
4
pull_request :
8
8
env :
9
9
CARGO_TERM_COLOR : always
10
10
11
+ # TODO - increase version to 22.04, to unify every job
12
+ # TODO - remove appimage
11
13
jobs :
12
- linux-krokiet-gui :
14
+ linux-cli-krokiet-release :
15
+ if : ${{ github.ref == 'refs/heads/master' }}
13
16
runs-on : ubuntu-20.04
14
17
steps :
15
18
- uses : actions/checkout@v4
16
19
20
+ - name : Install basic libraries
21
+ run : sudo apt update || true; sudo apt install libheif-dev libraw-dev ffmpeg -y
22
+
17
23
- name : Setup rust version
18
24
run : rustup default 1.85.0
19
25
20
- - name : Enable LTO
21
- if : ${{ github.ref == 'refs/heads/master' }}
22
- run : sed -i 's/#lto = "thin"/lto = "thin"/g' Cargo.toml
26
+ - name : Build Release
27
+ run :
28
+ sed -i 's/#lto = "thin"/lto = "thin"/g' Cargo.toml
29
+ cargo build --release --bin czkawka_cli --bin krokiet
23
30
24
- - name : Build Release Krokiet
25
- run : cargo build --release --bin krokiet
31
+ - name : Store Linux CLI
32
+ uses : actions/upload-artifact@v4
33
+ with :
34
+ name : czkawka_cli-${{ runner.os }}-release
35
+ path : target/release/czkawka_cli
26
36
27
- - name : Store Linux GUI Krokiet
37
+ - name : Store Linux Krokiet
28
38
uses : actions/upload-artifact@v4
29
39
with :
30
- name : krokiet -${{ runner.os }}
40
+ name : czkawka_cli -${{ runner.os }}-release
31
41
path : target/release/krokiet
32
42
33
43
- name : Prepare files to release
34
44
run : |
35
- mv target/release/krokiet linux_krokiet_gui
45
+ mv target/release/czkawka_cli linux_czkawka_cli
46
+ mv target/release/krokiet linux_krokiet
47
+
36
48
- name : Release
37
49
uses : softprops/action-gh-release@v2
38
- if : ${{ github.ref == 'refs/heads/master' }}
39
50
with :
40
51
tag_name : " Nightly"
41
52
files : |
42
- linux_krokiet_gui
53
+ linux_czkawka_cli
54
+ linux_krokiet
43
55
token : ${{ secrets.PAT_REPOSITORY }}
44
56
57
+ linux-cli-krokiet-debug :
58
+ if : ${{ github.ref != 'refs/heads/master' }}
59
+ runs-on : ubuntu-20.04
60
+ steps :
61
+ - uses : actions/checkout@v4
62
+
63
+ - name : Install basic libraries
64
+ run : sudo apt update || true; sudo apt install libheif-dev libraw-dev ffmpeg -y
65
+
66
+ - name : Setup rust version
67
+ run : rustup default 1.85.0
68
+
69
+ - name : Build Debug
70
+ run : |
71
+ sed -i 's/^\(\[profile\.dev\.package.*\)/#\1/' Cargo.toml
72
+ sed -i 's|^opt-level = 3 # OPT PACKAGES|#opt-level = 3 # OPT PACKAGES|' Cargo.toml
73
+ cargo build --bin czkawka_cli --bin krokiet
74
+
75
+ - name : Store Linux CLI Debug
76
+ uses : actions/upload-artifact@v4
77
+ with :
78
+ name : czkawka_cli-${{ runner.os }}-debug
79
+ path : target/debug/czkawka_cli
80
+
81
+ - name : Store Linux Krokiet Debug
82
+ uses : actions/upload-artifact@v4
83
+ with :
84
+ name : krokiet-${{ runner.os }}-debug
85
+ path : target/debug/krokiet
86
+
87
+
45
88
linux-krokiet-gui-heif :
46
89
runs-on : ubuntu-22.04
47
90
steps :
@@ -105,7 +148,6 @@ jobs:
105
148
- name : Build Release
106
149
run : cargo build --release --bin czkawka_gui
107
150
108
- # Only store stable toolchain
109
151
- name : Store Linux GUI
110
152
uses : actions/upload-artifact@v4
111
153
with :
@@ -207,11 +249,133 @@ jobs:
207
249
steps :
208
250
- uses : actions/checkout@v4
209
251
210
- - name : Install Dependencies
211
- run : sudo apt update || true; sudo apt install libgtk-4-dev libheif-dev libraw-dev librsvg2-dev wget fuse libfuse2 -y xvfb
252
+ - name : Install basic libraries
253
+ run : sudo apt update || true; sudo apt install libgtk-4-dev libheif-dev libraw-dev -y
212
254
213
255
- name : Setup rust version
214
256
run : rustup default 1.85.0
215
257
216
258
- name : Test
217
- run : xvfb-run cargo test
259
+ run : |
260
+ xvfb-run cargo test
261
+
262
+ linux-regression-tests-on-minimal-rust-version :
263
+ runs-on : ubuntu-22.04
264
+ steps :
265
+ - uses : actions/checkout@v4
266
+
267
+ - name : Install basic libraries
268
+ run : sudo apt update || true; sudo apt install libgtk-4-dev libheif-dev libraw-dev ffmpeg -y
269
+
270
+ - name : Setup rust version
271
+ run : rustup default 1.85.0
272
+
273
+ - name : Build
274
+ run : |
275
+ cargo check
276
+ cargo check --features "heif,libraw"
277
+
278
+ - name : Build test version
279
+ run : cargo build --profile test --bin czkawka_cli
280
+
281
+ - name : Linux Regression Test
282
+ run : |
283
+ wget https://github.com/qarmin/czkawka/releases/download/6.0.0/TestFiles.zip
284
+ cd ci_tester
285
+ cargo build --release
286
+ cd ..
287
+
288
+ ci_tester/target/release/ci_tester target/debug/czkawka_cli
289
+
290
+ linux-arm-release :
291
+ if : ${{ github.ref == 'refs/heads/master' }}
292
+ runs-on : ubuntu-22.04-arm
293
+ steps :
294
+ - uses : actions/checkout@v4
295
+
296
+ - name : Install basic libraries
297
+ run : sudo apt update || true; sudo apt install libgtk-4-dev libheif-dev libraw-dev -y
298
+
299
+ - name : Setup rust version
300
+ run : rustup default 1.85.0
301
+
302
+ - name : Build Release
303
+ run :
304
+ sed -i 's/#lto = "thin"/lto = "thin"/g' Cargo.toml
305
+ cargo build --release
306
+
307
+ - name : Store cli
308
+ uses : actions/upload-artifact@v4
309
+ with :
310
+ name : czkawka_cli-${{ runner.os }}-arm-release
311
+ path : |
312
+ target/release/czkawka_cli
313
+
314
+ - name : Store gui
315
+ uses : actions/upload-artifact@v4
316
+ with :
317
+ name : czkawka_gui-${{ runner.os }}-arm-release
318
+ path : |
319
+ target/release/czkawka_gui
320
+
321
+ - name : Store krokiet
322
+ uses : actions/upload-artifact@v4
323
+ with :
324
+ name : krokiet-${{ runner.os }}-arm-release
325
+ path : |
326
+ target/release/krokiet
327
+
328
+ - name : Prepare files to release
329
+ run : |
330
+ mv target/release/czkawka_cli linux_czkawka_cli_arm
331
+ mv target/release/czkawka_gui linux_czkawka_gui_arm
332
+ mv target/release/krokiet linux_krokiet_arm
333
+
334
+ - name : Release
335
+ uses : softprops/action-gh-release@v2
336
+ with :
337
+ tag_name : " Nightly"
338
+ files : |
339
+ linux_czkawka_cli_arm
340
+ linux_czkawka_gui_arm
341
+ linux_krokiet_arm
342
+ token : ${{ secrets.PAT_REPOSITORY }}
343
+
344
+ linux-arm-debug :
345
+ if : ${{ github.ref != 'refs/heads/master' }}
346
+ runs-on : ubuntu-22.04-arm
347
+ steps :
348
+ - uses : actions/checkout@v4
349
+
350
+ - name : Install basic libraries
351
+ run : sudo apt update || true; sudo apt install libgtk-4-dev libheif-dev libraw-dev -y
352
+
353
+ - name : Setup rust version
354
+ run : rustup default 1.85.0
355
+
356
+ - name : Build Debug
357
+ run : |
358
+ sed -i 's/^\(\[profile\.dev\.package.*\)/#\1/' Cargo.toml
359
+ sed -i 's|^opt-level = 3 # OPT PACKAGES|#opt-level = 3 # OPT PACKAGES|' Cargo.toml
360
+ cargo build
361
+
362
+ - name : Store cli
363
+ uses : actions/upload-artifact@v4
364
+ with :
365
+ name : czkawka_cli-${{ runner.os }}-arm-debug
366
+ path : |
367
+ target/debug/czkawka_cli
368
+
369
+ - name : Store gui
370
+ uses : actions/upload-artifact@v4
371
+ with :
372
+ name : czkawka_gui-${{ runner.os }}-arm-debug
373
+ path : |
374
+ target/debug/czkawka_gui
375
+
376
+ - name : Store krokiet
377
+ uses : actions/upload-artifact@v4
378
+ with :
379
+ name : krokiet-${{ runner.os }}-arm-debug
380
+ path : |
381
+ target/debug/krokiet
0 commit comments