1- name : 🐧 Linux GUI
1+ name : 🐧 Linux
22on :
33 push :
44 pull_request :
88env :
99 CARGO_TERM_COLOR : always
1010
11+ # TODO - increase version to 22.04, to unify every job
12+ # TODO - remove appimage
1113jobs :
12- linux-krokiet-gui :
14+ linux-cli-krokiet-release :
15+ if : ${{ github.ref == 'refs/heads/master' }}
1316 runs-on : ubuntu-20.04
1417 steps :
1518 - uses : actions/checkout@v4
1619
20+ - name : Install basic libraries
21+ run : sudo apt update || true; sudo apt install libheif-dev libraw-dev ffmpeg -y
22+
1723 - name : Setup rust version
1824 run : rustup default 1.85.0
1925
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
2330
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
2636
27- - name : Store Linux GUI Krokiet
37+ - name : Store Linux Krokiet
2838 uses : actions/upload-artifact@v4
2939 with :
30- name : krokiet -${{ runner.os }}
40+ name : czkawka_cli -${{ runner.os }}-release
3141 path : target/release/krokiet
3242
3343 - name : Prepare files to release
3444 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+
3648 - name : Release
3749 uses : softprops/action-gh-release@v2
38- if : ${{ github.ref == 'refs/heads/master' }}
3950 with :
4051 tag_name : " Nightly"
4152 files : |
42- linux_krokiet_gui
53+ linux_czkawka_cli
54+ linux_krokiet
4355 token : ${{ secrets.PAT_REPOSITORY }}
4456
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+
4588 linux-krokiet-gui-heif :
4689 runs-on : ubuntu-22.04
4790 steps :
@@ -105,7 +148,6 @@ jobs:
105148 - name : Build Release
106149 run : cargo build --release --bin czkawka_gui
107150
108- # Only store stable toolchain
109151 - name : Store Linux GUI
110152 uses : actions/upload-artifact@v4
111153 with :
@@ -207,11 +249,133 @@ jobs:
207249 steps :
208250 - uses : actions/checkout@v4
209251
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
212254
213255 - name : Setup rust version
214256 run : rustup default 1.85.0
215257
216258 - 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