mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 10:44:49 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			172 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | |
| # SPDX-License-Identifier: GPL-3.0-or-later
 | |
| 
 | |
| name: 'yuzu verify'
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     branches: [ master ]
 | |
| env:
 | |
|   PR_NUMBER: pr${{ github.event.number }}
 | |
| 
 | |
| jobs:
 | |
|   format:
 | |
|     name: 'verify format'
 | |
|     runs-on: ubuntu-latest
 | |
|     container:
 | |
|       image: yuzuemu/build-environments:linux-clang-format
 | |
|       options: -u 1001
 | |
|     steps:
 | |
|       - uses: actions/checkout@v3
 | |
|         with:
 | |
|           submodules: false
 | |
|       - name: 'Verify Formatting'
 | |
|         run: bash -ex ./.ci/scripts/format/script.sh
 | |
|   build:
 | |
|     name: 'test build'
 | |
|     needs: format
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         include:
 | |
|           - type: clang
 | |
|             image: linux-fresh
 | |
|           - type: linux
 | |
|             image: linux-fresh
 | |
|           - type: windows
 | |
|             image: linux-mingw
 | |
|     container:
 | |
|       image: yuzuemu/build-environments:${{ matrix.image }}
 | |
|       options: -u 1001
 | |
|     steps:
 | |
|       - uses: actions/checkout@v3
 | |
|         with:
 | |
|           submodules: recursive
 | |
|           fetch-depth: 0
 | |
|       - name: Set up cache
 | |
|         uses: actions/cache@v3
 | |
|         id: ccache-restore
 | |
|         with:
 | |
|           path: ~/.ccache
 | |
|           key: ${{ runner.os }}-${{ matrix.type }}-${{ github.sha }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-${{ matrix.type }}-            
 | |
|       - name: Create ccache directory
 | |
|         if: steps.ccache-restore.outputs.cache-hit != 'true'
 | |
|         run: mkdir -p ~/.ccache
 | |
|       - name: Build
 | |
|         run: ./.ci/scripts/${{ matrix.type }}/docker.sh
 | |
|         env:
 | |
|           ENABLE_COMPATIBILITY_REPORTING: "ON"
 | |
|       - name: Pack
 | |
|         run: ./.ci/scripts/${{ matrix.type }}/upload.sh
 | |
|         env:
 | |
|           NO_SOURCE_PACK: "YES"
 | |
|       - name: Upload
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: ${{ matrix.type }}
 | |
|           path: artifacts/
 | |
|   build-msvc:
 | |
|     name: 'test build (windows, msvc)'
 | |
|     needs: format
 | |
|     runs-on: windows-2022
 | |
|     steps:
 | |
|       - uses: actions/checkout@v3
 | |
|         with:
 | |
|           submodules: recursive
 | |
|           fetch-depth: 0
 | |
|       - name: Set up cache
 | |
|         uses: actions/cache@v3
 | |
|         with:
 | |
|           path: ~/.buildcache
 | |
|           key: ${{ runner.os }}-msvc-${{ github.sha }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-msvc-            
 | |
|       - name: Install dependencies
 | |
|         shell: pwsh
 | |
|         run: |
 | |
|           $ErrorActionPreference = "Stop"
 | |
|           $BuildCacheVer = "v0.28.4"
 | |
|           $File = "buildcache-windows.zip"
 | |
|           $Uri = "https://github.com/mbitsnbites/buildcache/releases/download/$BuildCacheVer/$File"
 | |
|           $WebClient = New-Object System.Net.WebClient
 | |
|           $WebClient.DownloadFile($Uri, $File)
 | |
|           7z x $File
 | |
|           $CurrentDir = Convert-Path .
 | |
|           echo "$CurrentDir/buildcache/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append          
 | |
|       - name: Install Vulkan SDK
 | |
|         shell: pwsh
 | |
|         run: .\.ci\scripts\windows\install-vulkan-sdk.ps1
 | |
|       - name: Set up MSVC
 | |
|         uses: ilammy/msvc-dev-cmd@v1
 | |
|       - name: Configure
 | |
|         env:
 | |
|           CC: cl.exe
 | |
|           CXX: cl.exe
 | |
|         run: |
 | |
|           glslangValidator --version
 | |
|           mkdir build
 | |
|           cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DYUZU_CRASH_DUMPS=ON          
 | |
|       - name: Build
 | |
|         run: cmake --build build
 | |
|       - name: Cache Summary
 | |
|         run: buildcache -s
 | |
|       - name: Pack
 | |
|         shell: pwsh
 | |
|         run: .\.ci\scripts\windows\upload.ps1
 | |
|       - name: Upload
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: msvc
 | |
|           path: artifacts/
 | |
|       - name: Upload EXE
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: ${{ env.INDIVIDUAL_EXE }}
 | |
|           path: ${{ env.INDIVIDUAL_EXE }}
 | |
|   android:
 | |
|     runs-on: ubuntu-latest
 | |
|     needs: format
 | |
|     steps:
 | |
|       - uses: actions/checkout@v3
 | |
|         with:
 | |
|           submodules: recursive
 | |
|           fetch-depth: 0
 | |
|       - name: set up JDK 17
 | |
|         uses: actions/setup-java@v3
 | |
|         with:
 | |
|           java-version: '17'
 | |
|           distribution: 'temurin'
 | |
|       - name: Set up cache
 | |
|         uses: actions/cache@v3
 | |
|         with:
 | |
|           path: |
 | |
|             ~/.gradle/caches
 | |
|             ~/.gradle/wrapper
 | |
|             ~/.ccache            
 | |
|           key: ${{ runner.os }}-android-${{ github.sha }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-android-            
 | |
|       - name: Query tag name
 | |
|         uses: olegtarasov/get-tag@v2.1.2
 | |
|         id: tagName
 | |
|       - name: Install dependencies
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install -y ccache apksigner glslang-dev glslang-tools          
 | |
|       - name: Build
 | |
|         run: ./.ci/scripts/android/build.sh
 | |
|       - name: Copy and sign artifacts
 | |
|         env:
 | |
|           ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
 | |
|           ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
 | |
|           ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
 | |
|         run: ./.ci/scripts/android/upload.sh
 | |
|       - name: Upload
 | |
|         uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: android
 | |
|           path: artifacts/
 |