diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7c61cff..83e9efa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,10 +3,6 @@ name: Build lsfg-vk on: push: branches: ["release"] - workflow_dispatch: - -env: - CARGO_TERM_COLOR: always jobs: build: @@ -35,7 +31,7 @@ jobs: run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=./build-release \ + -DCMAKE_INSTALL_PREFIX=./target \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On @@ -45,33 +41,33 @@ jobs: - name: Install with CMake run: | cmake --install build --strip - - name: Build lsfg-vk-ui with appimage.sh + - name: Build lsfg-vk-ui run: | pushd ui - chmod +x ../scripts/build/appimage.sh - ../scripts/build/appimage.sh + chmod +x ./build_appimage.sh + ./build_appimage.sh popd - name: Install lsfg-vk-ui run: | - mkdir -p build-release/{bin,share/applications,share/icons/hicolor/256x256/apps} - mv ui/lsfg-vk-ui.AppImage build-release/bin/lsfg-vk-ui - cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop build-release/share/applications/lsfg-vk-ui.desktop - cp ui/rsc/icon.png build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png + mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps} + mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui + cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop + cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png # upload all files - name: Upload lsfg-vk artifact uses: actions/upload-artifact@v4 with: name: lsfg-vk path: | - build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json - build-release/share/applications/lsfg-vk-ui.desktop - build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png - build-release/lib/liblsfg-vk.so - build-release/bin/lsfg-vk-ui + target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + target/share/applications/lsfg-vk-ui.desktop + target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png + target/lib/liblsfg-vk.so + target/bin/lsfg-vk-ui - name: Upload lsfg-vk artifact (without UI) uses: actions/upload-artifact@v4 with: name: lsfg-vk_noui path: | - build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json - build-release/lib/liblsfg-vk.so + target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + target/lib/liblsfg-vk.so diff --git a/.github/workflows/build_ci.yml b/.github/workflows/build_ci.yml new file mode 100644 index 0000000..36a89f3 --- /dev/null +++ b/.github/workflows/build_ci.yml @@ -0,0 +1,73 @@ +name: (CI) Build lsfg-vk + +on: + push: + branches: ["develop"] + +jobs: + build: + runs-on: ubuntu-latest + steps: + # prepare system + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Install build dependencies + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: git wget xvfb + clang clang-tools llvm rustup + cmake ninja-build pkg-config + libdecor-0-0 libvulkan-dev + libgtk-4-dev libadwaita-1-dev + version: 1.0 + execute_install_scripts: true + - name: Install rust dependency + run: | + rustup default stable + # build the project + - name: Configure with CMake and Ninja + run: | + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=./target \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On + - name: Build with Ninja + run: | + ninja -C build + - name: Install with CMake + run: | + cmake --install build --strip + - name: Build lsfg-vk-ui + run: | + pushd ui + chmod +x ./build_appimage.sh + ./build_appimage.sh + popd + - name: Install lsfg-vk-ui + run: | + mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps} + mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui + cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop + cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png + # upload all files + - name: Upload lsfg-vk artifact + uses: actions/upload-artifact@v4 + with: + name: lsfg-vk + path: | + target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + target/share/applications/lsfg-vk-ui.desktop + target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png + target/lib/liblsfg-vk.so + target/bin/lsfg-vk-ui + - name: Upload lsfg-vk artifact (without UI) + uses: actions/upload-artifact@v4 + with: + name: lsfg-vk_noui + path: | + target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + target/lib/liblsfg-vk.so diff --git a/scripts/build/appimage.sh b/ui/build_appimage.sh similarity index 70% rename from scripts/build/appimage.sh rename to ui/build_appimage.sh index 6e873bd..703716c 100755 --- a/scripts/build/appimage.sh +++ b/ui/build_appimage.sh @@ -8,10 +8,6 @@ URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime URUNTIME_LITE="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-lite-x86_64" SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-x86_64-aio" -LIBXML_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/libxml2-iculess-x86_64.pkg.tar.zst" -MESA_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/mesa-mini-x86_64.pkg.tar.zst" -LLVM_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/llvm-libs-nano-x86_64.pkg.tar.zst" - VERSION=$(awk -F'=|"' '/^version/{print $3}' ./Cargo.toml) echo "$VERSION-dev" > ~/version @@ -25,16 +21,7 @@ chmod +x uruntime uruntime-lite # build lsfg-vk-ui echo "Building lsfg-vk-ui..." -cargo build --release # doesn't compile with debloated llvm - -# install debloated dependencies -echo "Installing debloated packages..." -wget -O libxml2.pkg.tar.zst "$LIBXML_URL" -wget -O mesa.pkg.tar.zst "$MESA_URL" -wget -O llvm-libs.pkg.tar.zst "$LLVM_URL" - -#pacman -U --noconfirm *.pkg.tar.zst -rm -fv *.pkg.tar.zst +cargo build --release # deploy app directory echo "Deploying app directory..."