mirror of
				https://github.com/diamante0018/master-tool.git
				synced 2025-10-31 08:27:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			238 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Build
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - "*"
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - "*"
 | |
|     types: [opened, synchronize, reopened]
 | |
| 
 | |
| concurrency:
 | |
|   group: ${{ github.ref }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| env:
 | |
|   PREMAKE_VERSION: "5.0.0-beta6"
 | |
| 
 | |
| jobs:
 | |
|   build-windows:
 | |
|     name: Build Windows
 | |
|     runs-on: windows-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         configuration:
 | |
|           - release
 | |
|         compiler:
 | |
|           - msvc
 | |
|           - clang
 | |
|         arch:
 | |
|           - x86
 | |
|           - x64
 | |
|           - arm64
 | |
|         include:
 | |
|           - arch: x86
 | |
|             platform: Win32
 | |
|           - arch: x64
 | |
|             platform: x64
 | |
|           - arch: arm64
 | |
|             platform: arm64
 | |
|     steps:
 | |
|       - name: Check out files
 | |
|         uses: actions/checkout@main
 | |
|         with:
 | |
|           submodules: true
 | |
|           fetch-depth: 0
 | |
|           lfs: false
 | |
| 
 | |
|       - name: Add msbuild to PATH
 | |
|         uses: microsoft/setup-msbuild@main
 | |
| 
 | |
|       - name: Install Premake5
 | |
|         uses: diamante0018/setup-premake@master
 | |
|         with:
 | |
|           version: ${{ env.PREMAKE_VERSION }}
 | |
| 
 | |
|       - name: Generate project files (clang)
 | |
|         if: matrix.compiler == 'clang'
 | |
|         run: premake5 --cc=${{matrix.compiler}} vs2022
 | |
| 
 | |
|       - name: Generate project files (msvc)
 | |
|         if: matrix.compiler == 'msvc'
 | |
|         run: premake5 vs2022
 | |
| 
 | |
|       - name: Set up problem matching
 | |
|         uses: ammaraskar/msvc-problem-matcher@master
 | |
| 
 | |
|       - name: Build ${{matrix.arch}} ${{matrix.configuration}} ${{matrix.compiler}} binaries
 | |
|         run: msbuild /m /p:Configuration=${{matrix.configuration}} /p:Platform=${{matrix.platform}} build/alterware-master-tool.sln
 | |
| 
 | |
|       - name: Upload ${{matrix.arch}} ${{matrix.configuration}} ${{matrix.compiler}} binaries
 | |
|         uses: actions/upload-artifact@main
 | |
|         with:
 | |
|           name: windows-${{matrix.arch}}-${{matrix.configuration}}-${{matrix.compiler}}
 | |
|           path: |
 | |
|             build/bin/${{matrix.arch}}/${{matrix.configuration}}/alterware-master-tool.exe
 | |
|             build/bin/${{matrix.arch}}/${{matrix.configuration}}/alterware-master-tool.pdb
 | |
| 
 | |
|   build-linux:
 | |
|     name: Build Linux
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         configuration:
 | |
|           - release
 | |
|         arch:
 | |
|           - amd64
 | |
|     steps:
 | |
|       - name: Check out files
 | |
|         uses: actions/checkout@main
 | |
|         with:
 | |
|           submodules: true
 | |
|           fetch-depth: 0
 | |
|           lfs: false
 | |
| 
 | |
|       - name: Install Premake5
 | |
|         uses: diamante0018/setup-premake@master
 | |
|         with:
 | |
|           version: ${{ env.PREMAKE_VERSION }}
 | |
| 
 | |
|       - name: Generate project files
 | |
|         run: premake5 --cc=clang gmake
 | |
| 
 | |
|       - name: Set up problem matching
 | |
|         uses: ammaraskar/gcc-problem-matcher@master
 | |
| 
 | |
|       - name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         run: |
 | |
|           pushd build
 | |
|           make config=${{matrix.configuration}}_${{matrix.arch}} -j$(nproc)
 | |
|         env:
 | |
|           CC: clang
 | |
|           CXX: clang++
 | |
| 
 | |
|       - name: Upload ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         uses: actions/upload-artifact@main
 | |
|         with:
 | |
|           name: linux-${{matrix.arch}}-${{matrix.configuration}}
 | |
|           path: |
 | |
|             build/bin/${{matrix.arch}}/${{matrix.configuration}}/alterware-master-tool
 | |
| 
 | |
|   prebuild-linux-arm64:
 | |
|     name: Prebuild Linux
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Check out files
 | |
|         uses: actions/checkout@main
 | |
|         with:
 | |
|           submodules: true
 | |
|           fetch-depth: 0
 | |
|           lfs: false
 | |
| 
 | |
|       - name: Install Premake5
 | |
|         uses: diamante0018/setup-premake@master
 | |
|         with:
 | |
|           version: ${{ env.PREMAKE_VERSION }}
 | |
| 
 | |
|       - name: Generate project files
 | |
|         run: premake5 --cc=clang gmake
 | |
| 
 | |
|       - name: Upload project files
 | |
|         uses: actions/upload-artifact@main
 | |
|         with:
 | |
|           name: linux-project-files
 | |
|           path: |
 | |
|             build/
 | |
| 
 | |
|   build-linux-arm64:
 | |
|     name: Build Linux
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     needs: prebuild-linux-arm64
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         configuration:
 | |
|           - release
 | |
|         arch:
 | |
|           - arm64
 | |
|         include:
 | |
|           - arch: arm64
 | |
|             os: ubuntu-24.04-arm
 | |
|     steps:
 | |
|       - name: Check out files
 | |
|         uses: actions/checkout@main
 | |
|         with:
 | |
|           submodules: true
 | |
|           fetch-depth: 0
 | |
|           lfs: false
 | |
| 
 | |
|       - name: Create the build directory
 | |
|         run: mkdir -p build
 | |
| 
 | |
|       - name: Download project files
 | |
|         uses: actions/download-artifact@main
 | |
|         with:
 | |
|           name: linux-project-files
 | |
|           path: build/
 | |
| 
 | |
|       - name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         working-directory: ${{ github.workspace }}
 | |
|         run: |
 | |
|           pushd build
 | |
|           make config=${{matrix.configuration}}_${{matrix.arch}} -j$(nproc)
 | |
|         env:
 | |
|          CC: clang
 | |
|          CXX: clang++
 | |
| 
 | |
|       - name: Upload ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         uses: actions/upload-artifact@main
 | |
|         with:
 | |
|           name: linux-${{matrix.arch}}-${{matrix.configuration}}
 | |
|           path: |
 | |
|             build/bin/${{matrix.arch}}/${{matrix.configuration}}/alterware-master-tool
 | |
| 
 | |
|   build-mac:
 | |
|     name: Build macOS
 | |
|     runs-on: macos-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         configuration:
 | |
|           - release
 | |
|         arch:
 | |
|           - amd64
 | |
|           - arm64
 | |
|     steps:
 | |
|       - name: Check out files
 | |
|         uses: actions/checkout@main
 | |
|         with:
 | |
|           submodules: true
 | |
|           fetch-depth: 0
 | |
|           lfs: false
 | |
| 
 | |
|       - name: Install Premake5
 | |
|         uses: diamante0018/setup-premake@master
 | |
|         with:
 | |
|           version: ${{ env.PREMAKE_VERSION }}
 | |
| 
 | |
|       - name: Generate project files
 | |
|         run: premake5 gmake
 | |
| 
 | |
|       - name: Set up problem matching
 | |
|         uses: ammaraskar/gcc-problem-matcher@master
 | |
| 
 | |
|       - name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         run: |
 | |
|           pushd build
 | |
|           make config=${{matrix.configuration}}_${{matrix.arch}} -j$(sysctl -n hw.logicalcpu)
 | |
| 
 | |
|       - name: Upload ${{matrix.arch}} ${{matrix.configuration}} binaries
 | |
|         uses: actions/upload-artifact@main
 | |
|         with:
 | |
|           name: macos-${{matrix.arch}}-${{matrix.configuration}}
 | |
|           path: |
 | |
|             build/bin/${{matrix.arch}}/${{matrix.configuration}}/alterware-master-tool
 |