mirror of
				https://github.com/PancakeTAS/lsfg-vk.git
				synced 2025-10-30 07:01:10 +00:00 
			
		
		
		
	enhancement(flatpakui): enhance main build workflow
This commit is contained in:
		
							parent
							
								
									1ab4f2ef56
								
							
						
					
					
						commit
						bfd8d0b8e5
					
				
					 3 changed files with 89 additions and 33 deletions
				
			
		
							
								
								
									
										34
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -3,10 +3,6 @@ name: Build lsfg-vk
 | 
				
			||||||
on:
 | 
					on:
 | 
				
			||||||
  push:
 | 
					  push:
 | 
				
			||||||
    branches: ["release"]
 | 
					    branches: ["release"]
 | 
				
			||||||
  workflow_dispatch:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
env:
 | 
					 | 
				
			||||||
  CARGO_TERM_COLOR: always
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
| 
						 | 
					@ -35,7 +31,7 @@ jobs:
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        cmake -B build -G Ninja \
 | 
					        cmake -B build -G Ninja \
 | 
				
			||||||
          -DCMAKE_BUILD_TYPE=Release \
 | 
					          -DCMAKE_BUILD_TYPE=Release \
 | 
				
			||||||
          -DCMAKE_INSTALL_PREFIX=./build-release \
 | 
					          -DCMAKE_INSTALL_PREFIX=./target \
 | 
				
			||||||
          -DCMAKE_C_COMPILER=clang \
 | 
					          -DCMAKE_C_COMPILER=clang \
 | 
				
			||||||
          -DCMAKE_CXX_COMPILER=clang++ \
 | 
					          -DCMAKE_CXX_COMPILER=clang++ \
 | 
				
			||||||
          -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On
 | 
					          -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On
 | 
				
			||||||
| 
						 | 
					@ -45,33 +41,33 @@ jobs:
 | 
				
			||||||
    - name: Install with CMake
 | 
					    - name: Install with CMake
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        cmake --install build --strip
 | 
					        cmake --install build --strip
 | 
				
			||||||
    - name: Build lsfg-vk-ui with appimage.sh
 | 
					    - name: Build lsfg-vk-ui
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        pushd ui
 | 
					        pushd ui
 | 
				
			||||||
        chmod +x ../scripts/build/appimage.sh
 | 
					        chmod +x ./build_appimage.sh
 | 
				
			||||||
        ../scripts/build/appimage.sh
 | 
					        ./build_appimage.sh
 | 
				
			||||||
        popd
 | 
					        popd
 | 
				
			||||||
    - name: Install lsfg-vk-ui
 | 
					    - name: Install lsfg-vk-ui
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        mkdir -p build-release/{bin,share/applications,share/icons/hicolor/256x256/apps}
 | 
					        mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps}
 | 
				
			||||||
        mv ui/lsfg-vk-ui.AppImage build-release/bin/lsfg-vk-ui
 | 
					        mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui
 | 
				
			||||||
        cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop build-release/share/applications/lsfg-vk-ui.desktop
 | 
					        cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop
 | 
				
			||||||
        cp ui/rsc/icon.png build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png
 | 
					        cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png
 | 
				
			||||||
    # upload all files
 | 
					    # upload all files
 | 
				
			||||||
    - name: Upload lsfg-vk artifact
 | 
					    - name: Upload lsfg-vk artifact
 | 
				
			||||||
      uses: actions/upload-artifact@v4
 | 
					      uses: actions/upload-artifact@v4
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        name: lsfg-vk
 | 
					        name: lsfg-vk
 | 
				
			||||||
        path: |
 | 
					        path: |
 | 
				
			||||||
          build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
 | 
					          target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
 | 
				
			||||||
          build-release/share/applications/lsfg-vk-ui.desktop
 | 
					          target/share/applications/lsfg-vk-ui.desktop
 | 
				
			||||||
          build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png
 | 
					          target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png
 | 
				
			||||||
          build-release/lib/liblsfg-vk.so
 | 
					          target/lib/liblsfg-vk.so
 | 
				
			||||||
          build-release/bin/lsfg-vk-ui
 | 
					          target/bin/lsfg-vk-ui
 | 
				
			||||||
    - name: Upload lsfg-vk artifact (without UI)
 | 
					    - name: Upload lsfg-vk artifact (without UI)
 | 
				
			||||||
      uses: actions/upload-artifact@v4
 | 
					      uses: actions/upload-artifact@v4
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        name: lsfg-vk_noui
 | 
					        name: lsfg-vk_noui
 | 
				
			||||||
        path: |
 | 
					        path: |
 | 
				
			||||||
          build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
 | 
					          target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
 | 
				
			||||||
          build-release/lib/liblsfg-vk.so
 | 
					          target/lib/liblsfg-vk.so
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										73
									
								
								.github/workflows/build_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								.github/workflows/build_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -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
 | 
				
			||||||
| 
						 | 
					@ -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"
 | 
					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"
 | 
					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)
 | 
					VERSION=$(awk -F'=|"' '/^version/{print $3}' ./Cargo.toml)
 | 
				
			||||||
echo "$VERSION-dev" > ~/version
 | 
					echo "$VERSION-dev" > ~/version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,16 +21,7 @@ chmod +x uruntime uruntime-lite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# build lsfg-vk-ui
 | 
					# build lsfg-vk-ui
 | 
				
			||||||
echo "Building lsfg-vk-ui..."
 | 
					echo "Building lsfg-vk-ui..."
 | 
				
			||||||
cargo build --release # doesn't compile with debloated llvm
 | 
					cargo build --release
 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# deploy app directory
 | 
					# deploy app directory
 | 
				
			||||||
echo "Deploying app directory..."
 | 
					echo "Deploying app directory..."
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue