mirror of
				https://github.com/MadeOfJelly/MushMachine.git
				synced 2025-11-04 07:36:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			167 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CMake
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches: [ master ]
 | 
						|
  pull_request:
 | 
						|
    branches: [ master ]
 | 
						|
 | 
						|
env:
 | 
						|
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
 | 
						|
  BUILD_TYPE: Debug
 | 
						|
  EM_VERSION: 3.1.32
 | 
						|
  EM_CACHE_FOLDER: 'emsdk-cache'
 | 
						|
 | 
						|
jobs:
 | 
						|
  linux:
 | 
						|
    timeout-minutes: 15
 | 
						|
 | 
						|
    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
 | 
						|
    # You can convert this to a matrix build if you need cross-platform coverage.
 | 
						|
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    - name: Install Dependencies
 | 
						|
      run: sudo apt update && sudo apt -y install libsdl2-dev xserver-xorg-video-dummy
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 | 
						|
    - name: Test
 | 
						|
      working-directory: ${{github.workspace}}/build
 | 
						|
      # Execute tests defined by the CMake configuration.
 | 
						|
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
 | 
						|
      #run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
 | 
						|
      # TODO: look into xinit
 | 
						|
      env:
 | 
						|
        DISPLAY: :0
 | 
						|
      run: |
 | 
						|
        sudo Xorg :0 -config ${{github.workspace}}/.github/workflows/x/dummy-1920x1080.conf -noautoBindGPU &
 | 
						|
        sleep 20s
 | 
						|
        ctest --output-on-failure --timeout 20
 | 
						|
        sudo pkill -15 Xorg
 | 
						|
 | 
						|
 | 
						|
  linux_gles:
 | 
						|
    timeout-minutes: 10
 | 
						|
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    - name: Install Dependencies
 | 
						|
      run: sudo apt update && sudo apt -y install libsdl2-dev
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMM_OPENGL_3_GLES=ON
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 | 
						|
  linux_tracy:
 | 
						|
    timeout-minutes: 10
 | 
						|
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    - name: Install Dependencies
 | 
						|
      run: sudo apt update && sudo apt -y install libsdl2-dev
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTRACY_ENABLE=ON
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 | 
						|
  emscripten:
 | 
						|
    timeout-minutes: 10
 | 
						|
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    - name: Setup em cache
 | 
						|
      id: em-cache-system-libraries
 | 
						|
      uses: actions/cache@v4
 | 
						|
      with:
 | 
						|
        path: ${{env.EM_CACHE_FOLDER}}
 | 
						|
        key: ${{env.EM_VERSION}}-${{ runner.os }}
 | 
						|
 | 
						|
    - name: Setup emsdk
 | 
						|
      uses: mymindstorm/setup-emsdk@v14
 | 
						|
      with:
 | 
						|
        version: ${{env.EM_VERSION}}
 | 
						|
        actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
 | 
						|
 | 
						|
    - name: Verify
 | 
						|
      run: emcc --check
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: emcmake cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMM_OPENGL_3_GLES=ON
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 | 
						|
  macos:
 | 
						|
    timeout-minutes: 10
 | 
						|
 | 
						|
    runs-on: macos-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    - name: Install Dependencies
 | 
						|
      run: brew install sdl2
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 | 
						|
  windows:
 | 
						|
    timeout-minutes: 15 # TODO: caching
 | 
						|
 | 
						|
    runs-on: windows-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
      with:
 | 
						|
        submodules: recursive
 | 
						|
 | 
						|
    # TODO: cache
 | 
						|
    - name: Install Dependencies
 | 
						|
      run: vcpkg install sdl2[core,vulkan]:x64-windows
 | 
						|
 | 
						|
    # setup vs env
 | 
						|
    - uses: ilammy/msvc-dev-cmd@v1
 | 
						|
      with:
 | 
						|
        arch: amd64
 | 
						|
 | 
						|
    - name: Configure CMake
 | 
						|
      run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
 | 
						|
 | 
						|
    - name: Build
 | 
						|
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
 | 
						|
 |