2022-06-11 04:58:53 +12:00
|
|
|
name: 🏁 Windows
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
schedule:
|
|
|
|
- cron: '0 0 * * 2'
|
|
|
|
|
|
|
|
env:
|
|
|
|
CARGO_TERM_COLOR: always
|
|
|
|
|
|
|
|
jobs:
|
2023-11-21 02:44:14 +13:00
|
|
|
krokiet:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
use_heif: [ normal ]
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
2023-11-21 05:18:04 +13:00
|
|
|
- name: Install dependencies(mostly sd)
|
|
|
|
run: |
|
2023-11-21 06:48:24 +13:00
|
|
|
Invoke-WebRequest -Uri https://github.com/chmln/sd/releases/download/v1.0.0/sd-v1.0.0-x86_64-pc-windows-gnu.zip -OutFile a.zip
|
|
|
|
Expand-Archive ./a.zip
|
|
|
|
cp a/sd-v1.0.0-x86_64-pc-windows-gnu/sd.exe .
|
2023-11-21 05:18:04 +13:00
|
|
|
|
2023-11-21 02:44:14 +13:00
|
|
|
- name: Setup rust version
|
2023-11-21 10:10:45 +13:00
|
|
|
run: rustup default stable-x86_64-pc-windows-gnu
|
2023-11-21 02:44:14 +13:00
|
|
|
|
|
|
|
- name: Compile Krokiet
|
|
|
|
run: cargo build --release --bin krokiet
|
|
|
|
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: krokiet-windows-${{ github.sha }}-${{ matrix.use_heif }}
|
|
|
|
path: |
|
|
|
|
target/release/krokiet.exe
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
- name: Show console window on windows
|
2023-11-21 05:30:44 +13:00
|
|
|
run: ./sd.exe -s '#![windows_subsystem = "windows"]' '//#![windows_subsystem = "windows"]' krokiet/src/main.rs
|
2023-11-21 02:44:14 +13:00
|
|
|
|
|
|
|
- name: Compile Krokiet Console
|
|
|
|
run: cargo build --release --bin krokiet
|
|
|
|
|
|
|
|
- name: Upload artifacts Console
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: krokiet-windows-${{ github.sha }}-${{ matrix.use_heif }}-console
|
|
|
|
path: |
|
|
|
|
target/release/krokiet.exe
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
|
2022-06-11 04:58:53 +12:00
|
|
|
container:
|
2023-06-11 18:51:21 +12:00
|
|
|
strategy:
|
2023-11-21 02:44:14 +13:00
|
|
|
fail-fast: false
|
2023-06-11 18:51:21 +12:00
|
|
|
matrix:
|
|
|
|
use_heif: [ non_heif ] #, heif ] - heif problems with mingw
|
2022-06-11 04:58:53 +12:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
container:
|
2023-06-11 22:42:23 +12:00
|
|
|
image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6
|
2022-06-11 04:58:53 +12:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v1
|
|
|
|
- name: Install additional dependencies
|
|
|
|
# gio is for the build script
|
|
|
|
run: dnf install wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
|
|
with:
|
|
|
|
profile: minimal
|
|
|
|
toolchain: stable
|
|
|
|
target: x86_64-pc-windows-gnu
|
|
|
|
- name: Cache ~/.cargo
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cargo
|
|
|
|
key: windows-dotcargo
|
|
|
|
- name: Cache cargo build
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: target
|
|
|
|
key: windows-build-target
|
2023-06-11 18:51:21 +12:00
|
|
|
|
|
|
|
- name: Cross compile for Windows Heif
|
|
|
|
run: |
|
|
|
|
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/
|
|
|
|
cargo build --target=x86_64-pc-windows-gnu --release --locked --features heif
|
|
|
|
mkdir -p package
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_gui.exe package/
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_cli.exe package/
|
|
|
|
if: ${{ matrix.use_heif == 'heif' }}
|
|
|
|
|
2022-06-11 04:58:53 +12:00
|
|
|
- name: Cross compile for Windows
|
|
|
|
run: |
|
|
|
|
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/
|
|
|
|
cargo build --target=x86_64-pc-windows-gnu --release --locked
|
|
|
|
mkdir -p package
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_gui.exe package/
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_cli.exe package/
|
2023-06-11 18:51:21 +12:00
|
|
|
if: ${{ matrix.use_heif == 'non_heif' }}
|
|
|
|
|
2022-06-11 04:58:53 +12:00
|
|
|
- name: Package
|
|
|
|
run: |
|
|
|
|
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
cp -t package $(pds -vv -f package/*.exe)
|
|
|
|
# Add gdbus which is recommended on Windows (why?)
|
|
|
|
cp $MINGW_PREFIX/bin/gdbus.exe package
|
|
|
|
# Handle the glib schema compilation as well
|
|
|
|
glib-compile-schemas $MINGW_PREFIX/share/glib-2.0/schemas/
|
|
|
|
mkdir -p package/share/glib-2.0/schemas/
|
|
|
|
cp -T $MINGW_PREFIX/share/glib-2.0/schemas/gschemas.compiled package/share/glib-2.0/schemas/gschemas.compiled
|
|
|
|
# Pixbuf stuff, in order to get SVGs (scalable icons) to load
|
|
|
|
mkdir -p package/lib/gdk-pixbuf-2.0
|
|
|
|
cp -rT $MINGW_PREFIX/lib/gdk-pixbuf-2.0 package/lib/gdk-pixbuf-2.0
|
|
|
|
cp -f -t package $(pds -vv -f $MINGW_PREFIX/lib/gdk-pixbuf-2.0/2.10.0/loaders/*)
|
|
|
|
find package -iname "*.dll" -or -iname "*.exe" -type f -exec mingw-strip {} +
|
|
|
|
|
|
|
|
cd package/share
|
2023-02-26 23:50:54 +13:00
|
|
|
wget2 https://github.com/qarmin/czkawka/files/10832192/gtk4_theme.zip
|
2022-06-11 04:58:53 +12:00
|
|
|
unzip gtk4_theme.zip
|
|
|
|
rm gtk4_theme.zip
|
|
|
|
cd ../..
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
2023-06-11 18:51:21 +12:00
|
|
|
name: czkawka-windows-${{ github.sha }}-${{ matrix.use_heif }}
|
2022-06-11 04:58:53 +12:00
|
|
|
path: |
|
|
|
|
./package
|
2023-02-26 23:50:54 +13:00
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
# Provide option to log things to windows CLI
|
2023-05-15 01:00:53 +12:00
|
|
|
container_console_window:
|
2023-02-26 23:50:54 +13:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
container:
|
2023-06-11 22:42:23 +12:00
|
|
|
image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6
|
2023-02-26 23:50:54 +13:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v1
|
2023-11-21 05:30:44 +13:00
|
|
|
- name: Install dependencies(mostly sd)
|
|
|
|
run: |
|
2023-11-21 06:50:18 +13:00
|
|
|
dnf install wget -y
|
2023-11-21 05:30:44 +13:00
|
|
|
wget https://github.com/chmln/sd/releases/download/v1.0.0/sd-v1.0.0-x86_64-unknown-linux-gnu.tar.gz -O a.tar.gz
|
|
|
|
tar -xzf a.tar.gz
|
|
|
|
chmod +x sd-v1.0.0-x86_64-unknown-linux-gnu/sd
|
|
|
|
sudo cp sd-v1.0.0-x86_64-unknown-linux-gnu/sd /usr/bin/sd
|
2023-02-26 23:50:54 +13:00
|
|
|
- name: Install additional dependencies
|
|
|
|
# gio is for the build script
|
|
|
|
run: dnf install wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
|
|
with:
|
|
|
|
profile: minimal
|
|
|
|
toolchain: stable
|
|
|
|
target: x86_64-pc-windows-gnu
|
|
|
|
- name: Cache ~/.cargo
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cargo
|
|
|
|
key: windows-dotcargo
|
|
|
|
- name: Cache cargo build
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: target
|
|
|
|
key: windows-build-target
|
|
|
|
- name: Show console window on windows
|
2023-11-21 05:30:44 +13:00
|
|
|
run: sd -s '#![windows_subsystem = "windows"]' '//#![windows_subsystem = "windows"]' krokiet/src/main.rs
|
2023-02-26 23:50:54 +13:00
|
|
|
- name: Cross compile for Windows
|
|
|
|
run: |
|
|
|
|
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/
|
|
|
|
cargo build --target=x86_64-pc-windows-gnu --release --locked
|
|
|
|
mkdir -p package
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_gui.exe package/
|
|
|
|
cp target/x86_64-pc-windows-gnu/release/czkawka_cli.exe package/
|
|
|
|
- name: Package
|
|
|
|
run: |
|
|
|
|
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
cp -t package $(pds -vv -f package/*.exe)
|
|
|
|
# Add gdbus which is recommended on Windows (why?)
|
|
|
|
cp $MINGW_PREFIX/bin/gdbus.exe package
|
|
|
|
# Handle the glib schema compilation as well
|
|
|
|
glib-compile-schemas $MINGW_PREFIX/share/glib-2.0/schemas/
|
|
|
|
mkdir -p package/share/glib-2.0/schemas/
|
|
|
|
cp -T $MINGW_PREFIX/share/glib-2.0/schemas/gschemas.compiled package/share/glib-2.0/schemas/gschemas.compiled
|
|
|
|
# Pixbuf stuff, in order to get SVGs (scalable icons) to load
|
|
|
|
mkdir -p package/lib/gdk-pixbuf-2.0
|
|
|
|
cp -rT $MINGW_PREFIX/lib/gdk-pixbuf-2.0 package/lib/gdk-pixbuf-2.0
|
|
|
|
cp -f -t package $(pds -vv -f $MINGW_PREFIX/lib/gdk-pixbuf-2.0/2.10.0/loaders/*)
|
|
|
|
find package -iname "*.dll" -or -iname "*.exe" -type f -exec mingw-strip {} +
|
|
|
|
|
|
|
|
cd package/share
|
|
|
|
wget2 https://github.com/qarmin/czkawka/files/10832192/gtk4_theme.zip
|
|
|
|
unzip gtk4_theme.zip
|
|
|
|
rm gtk4_theme.zip
|
|
|
|
cd ../..
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: czkawka-windows-${{ github.sha }}-console
|
|
|
|
path: |
|
|
|
|
./package
|
|
|
|
if-no-files-found: error
|