mirror of
				https://github.com/N64Recomp/N64Recomp.git
				synced 2025-10-30 08:02:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: validate
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - main
 | |
|   pull_request:
 | |
|     types: [opened, synchronize]
 | |
| concurrency:
 | |
|   group: ${{ github.workflow }}-${{ github.ref }}
 | |
|   cancel-in-progress: true
 | |
| jobs:
 | |
|   build:
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     strategy:
 | |
|       matrix:
 | |
|         type: [ Debug, Release ]
 | |
|         # macos-13 is intel, macos-14 is arm, blaze/ubuntu-22.04 is arm
 | |
|         os: [ ubuntu-latest, windows-latest, macos-13, macos-14, blaze/ubuntu-22.04 ]
 | |
|     name: ${{ matrix.os }} (${{ (matrix.os == 'macos-14' || matrix.os == 'blaze/ubuntu-22.04') && 'arm64' || 'x64' }}, ${{ matrix.type }})
 | |
|     steps:
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v4
 | |
|         with:
 | |
|           submodules: true
 | |
|       - name: ccache
 | |
|         uses: hendrikmuhs/ccache-action@v1.2
 | |
|         with:
 | |
|           key: ${{ matrix.os }}-N64Recomp-ccache-${{ matrix.type }}
 | |
|       - name: Install Windows Dependencies
 | |
|         if: runner.os == 'Windows'
 | |
|         run: |
 | |
|           choco install ninja
 | |
|           Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue
 | |
|       - name: Install Linux Dependencies
 | |
|         if: runner.os == 'Linux'
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install -y ninja-build
 | |
|       - name: Install macOS Dependencies
 | |
|         if: runner.os == 'macOS'
 | |
|         run: |
 | |
|             brew install ninja
 | |
|       - name: Configure Developer Command Prompt
 | |
|         if: runner.os == 'Windows'
 | |
|         uses: ilammy/msvc-dev-cmd@v1
 | |
|       - name: Build N64Recomp (Unix)
 | |
|         if: runner.os != 'Windows'
 | |
|         run: |-
 | |
|           # enable ccache
 | |
|           export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
 | |
|           
 | |
|           cmake -DCMAKE_BUILD_TYPE=${{ matrix.type }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build
 | |
|           cmake --build cmake-build --config ${{ matrix.type }} --target N64Recomp -j $(nproc)
 | |
|       - name: Build N64Recomp (Windows)
 | |
|         if: runner.os == 'Windows'
 | |
|         run: |-
 | |
|           # enable ccache
 | |
|           set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH"
 | |
|           $cpuCores = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors
 | |
| 
 | |
|           # remove LLVM from PATH so it doesn't overshadow the one provided by VS
 | |
|           $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' }) -join ';'
 | |
|           
 | |
|           cmake -DCMAKE_BUILD_TYPE=${{ matrix.type }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build
 | |
|           cmake --build cmake-build --config ${{ matrix.type }} --target N64Recomp -j $cpuCores
 | 
