1.80.0 #2593
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 🏁 Windows | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 0 * * 2' | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
krokiet-compiled-on-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies(mostly sd) | |
run: | | |
sudo apt update || true;sudo apt install -y mingw-w64 mingw-w64-x86-64-dev | |
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 | |
cp sd-v1.0.0-x86_64-unknown-linux-gnu/sd . | |
chmod +x ./sd | |
- name: Setup rust version | |
run: | | |
rustup target add x86_64-pc-windows-gnu | |
- name: Enable LTO | |
run: sed -i 's/#lto = "thin"/lto = "thin"/g' Cargo.toml | |
- name: Compile Krokiet | |
run: cargo build --release --target x86_64-pc-windows-gnu --bin krokiet | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krokiet-windows-c-on-linux-${{ github.sha }} | |
path: | | |
target/x86_64-pc-windows-gnu/release/krokiet.exe | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv target/x86_64-pc-windows-gnu/release/krokiet.exe windows_krokiet_on_linux.exe | |
- name: Show console window on windows | |
run: | | |
./sd -s '#![windows_subsystem = "windows"]' '//#![windows_subsystem = "windows"]' krokiet/src/main.rs | |
cat krokiet/src/main.rs | |
- name: Compile Krokiet Console | |
run: cargo build --release --target x86_64-pc-windows-gnu --bin krokiet | |
- name: Upload artifacts Console | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krokiet-windows-c-on-linux-${{ github.sha }}-console | |
path: | | |
target/x86_64-pc-windows-gnu/release/krokiet.exe | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv target/x86_64-pc-windows-gnu/release/krokiet.exe windows_krokiet_on_linux_console.exe | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
tag_name: "Nightly" | |
files: | | |
windows_krokiet_on_linux.exe | |
windows_krokiet_on_linux_console.exe | |
token: ${{ secrets.PAT_REPOSITORY }} | |
krokiet-compiled-on-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies(mostly sd) | |
run: | | |
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 . | |
- name: Setup rust version | |
run: rustup default stable-x86_64-pc-windows-gnu | |
- name: Enable LTO | |
run: sed -i 's/#lto = "thin"/lto = "thin"/g' Cargo.toml | |
- name: Compile Krokiet | |
run: cargo build --release --bin krokiet | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krokiet-windows-c-on-windows-${{ github.sha }} | |
path: | | |
target/release/krokiet.exe | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv target/release/krokiet.exe windows_krokiet_on_windows.exe | |
- name: Show console window on windows | |
run: | | |
./sd.exe -s '#![windows_subsystem = "windows"]' '//#![windows_subsystem = "windows"]' krokiet/src/main.rs | |
cat krokiet/src/main.rs | |
- name: Compile Krokiet Console | |
run: cargo build --release --bin krokiet | |
- name: Upload artifacts Console | |
uses: actions/upload-artifact@v4 | |
with: | |
name: krokiet-windows-c-on-windows-${{ github.sha }}-console | |
path: | | |
target/release/krokiet.exe | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv target/release/krokiet.exe windows_krokiet_on_windows_console.exe | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
tag_name: "Nightly" | |
files: | | |
windows_krokiet_on_windows.exe | |
windows_krokiet_on_windows_console.exe | |
token: ${{ secrets.PAT_REPOSITORY }} | |
container_4_10: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/mglolenstine/gtk4-cross:gtk-4.10 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install additional dependencies | |
# gio is for the build script | |
run: | | |
dnf install curl wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
source "$HOME/.cargo/env" | |
rustup target add x86_64-pc-windows-gnu | |
- name: Cross compile for Windows | |
run: | | |
source "$HOME/.cargo/env" | |
#!/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@v4 | |
with: | |
name: czkawka-windows-${{ github.sha }}-4.10 | |
path: | | |
./package | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv ./package windows_czkawka_gui_gtk_410.zip | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
tag_name: "Nightly" | |
files: | | |
windows_czkawka_gui_gtk_410.zip | |
token: ${{ secrets.PAT_REPOSITORY }} | |
container_4_6: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install additional dependencies | |
# gio is for the build script | |
run: | | |
dnf install curl wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
source "$HOME/.cargo/env" | |
rustup target add x86_64-pc-windows-gnu | |
- name: Cross compile for Windows | |
run: | | |
source "$HOME/.cargo/env" | |
#!/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@v4 | |
with: | |
name: czkawka-windows-${{ github.sha }}-4.6 | |
path: | | |
./package | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv ./package windows_czkawka_gui_gtk_46.zip | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
tag_name: "Nightly" | |
files: | | |
windows_czkawka_gui_gtk_46.zip | |
token: ${{ secrets.PAT_REPOSITORY }} | |
# Provide option to log things to windows CLI | |
container_4_6_console_window: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies(mostly sd) | |
run: | | |
dnf install wget -y | |
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 | |
- name: Install additional dependencies | |
# gio is for the build script | |
run: | | |
dnf install curl wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
source "$HOME/.cargo/env" | |
rustup target add x86_64-pc-windows-gnu | |
- name: Show console window on windows | |
run: sd -s '#![windows_subsystem = "windows"]' '//#![windows_subsystem = "windows"]' krokiet/src/main.rs | |
- name: Cross compile for Windows | |
run: | | |
source "$HOME/.cargo/env" | |
#!/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@v4 | |
with: | |
name: czkawka-windows-${{ github.sha }}-console-4.6 | |
path: | | |
./package | |
if-no-files-found: error | |
- name: Prepare files to release | |
run: | | |
mv ./package windows_czkawka_gui_gtk_46_console.zip | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
tag_name: "Nightly" | |
files: | | |
windows_czkawka_gui_gtk_46_console.zip | |
token: ${{ secrets.PAT_REPOSITORY }} |