ui: workflow

This commit is contained in:
PancakeTAS 2025-07-24 14:46:46 +02:00 committed by Pancake
parent 979fd0481b
commit ec11593ab1
3 changed files with 86 additions and 1 deletions

64
.github/workflows/update-ui.yml vendored Normal file
View file

@ -0,0 +1,64 @@
name: Update lsfg-vk-ui app image
on:
push:
branches: ["feat/ui"]
jobs:
update-ui:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Prepare cache for pacman packages
uses: actions/cache@v4
with:
path: /var/cache/pacman/pkg
key: archlinux-pacman-cache
- name: Prepare cache for rustup
uses: actions/cache@v4
with:
path: /root/.rustup
key: archlinux-rustup-cache
- name: Prepare cache for cargo
uses: actions/cache@v4
with:
path: /root/.cargo
key: archlinux-cargo-cache
- name: Install build dependencies
run: |
pacman -Syu --noconfirm \
base-devel git \
clang llvm \
rustup gcc \
cmake ninja \
vulkan-headers vulkan-icd-loader \
xorg wayland wayland-protocols mesa-utils \
wget gdk-pixbuf2 gtk4 libadwaita fuse
- name: Update Rust toolchain
run: |
rustup default stable
- name: Update Cargo tools
run: |
cargo install cargo-appimage
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Grab continuous appimagetool
run: |
wget -O appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool
./appimagetool --appimage-extract
mv squashfs-root/usr/bin/* ui/
- name: Build UI with Cargo
run: |
cd ui
PATH=$PATH:$PWD cargo appimage
cd ..
mv ui/target/appimage/ui.AppImage lsfg-vk-ui.AppImage
- name: Upload lsfg-vk artifact
uses: actions/upload-artifact@v4
with:
name: lsfg-vk-ui
path: |
lsfg-vk-ui.AppImage

3
.gitignore vendored
View file

@ -3,6 +3,9 @@
# cargo files
/ui/target
/ui/libs
/ui/appimagetool
/ui/icon.png
# ide/lsp files
/.zed

View file

@ -1,7 +1,7 @@
[package]
name = "ui"
version = "0.0.1"
edition = "2024"
edition = "2021"
[dependencies]
gtk = { version = "0.10.0", package = "gtk4", features = ["v4_10"] }
@ -14,3 +14,21 @@ proc-maps = "0.4.0"
[build-dependencies]
glib-build-tools = "0.21.0"
[package.metadata.appimage]
auto_link = true
auto_link_exclude_list = [
"ld-linux*",
"libc.so*",
"libm.so*",
"libresolv.so*",
"libstdc++.so*",
"libxcb.so*",
"libX11.so*",
"libwayland-client.so*",
"libfontconfig.so*",
"libfreetype.so*",
"libexpat.so*",
"libgcc_s.so*",
"libz.so*"
]