name: (Manual) Build lsfg-vk on: issue_comment: types: ["created"] permissions: pull-requests: write jobs: build: runs-on: ubuntu-latest if: | github.event.issue.pull_request && github.event.comment.body == '@actions build' && github.event.comment.user.login == 'PancakeTAS' steps: # prepare system - name: Find commit hash id: prRef run: | echo "ref=$(gh pr view $PR_NUMBER --repo ${{ github.repository }} --json headRefName \ | jq -r '.headRefName')" >> $GITHUB_OUTPUT env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PR_NUMBER: ${{ github.event.issue.number }} - name: Checkout repository uses: actions/checkout@v4 with: ref: ${{ steps.prRef.outputs.ref }} fetch-depth: 0 - 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=Debug \ -DCMAKE_INSTALL_PREFIX=./target \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ - name: Build with Ninja run: | ninja -C build - name: Install with CMake run: | cmake --install build - 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 # create packages for various distros - name: Package lsfg-vk for various distros run: | cp -rv target/* . chmod +x ./package/package.sh ./package/package.sh # 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 - name: Upload lsfg-vk for dpkg uses: actions/upload-artifact@v4 with: name: lsfg-vk.dpkg path: | *.deb - name: Upload lsfg-vk for rpm uses: actions/upload-artifact@v4 with: name: lsfg-vk.rpm path: | *.rpm - name: Upload lsfg-vk for alpm uses: actions/upload-artifact@v4 with: name: lsfg-vk.alpm path: | *.zst # comment on pull request - name: Comment on PR uses: thollander/actions-comment-pull-request@v3 with: pr-number: ${{ github.event.issue.number }} message: | **Development Build** I have built this lsfg-vk pull request for you: https://github.com/PancakeTAS/lsfg-vk/actions/runs/${{ github.run_id }}