242 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: build
 | 
						|
 | 
						|
# build on c/cpp changes or workflow changes
 | 
						|
on:
 | 
						|
  - push
 | 
						|
  - pull_request
 | 
						|
 | 
						|
jobs:
 | 
						|
 | 
						|
  linux-gl:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container:
 | 
						|
      image: ubuntu:bionic
 | 
						|
      env: { LANG: "C.UTF-8" }
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install deps
 | 
						|
        run: |
 | 
						|
          apt-get update
 | 
						|
          apt-get install g++ cmake libxi-dev libgl1-mesa-dev libpng-dev libjpeg-dev zlib1g-dev -qyy
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          cmake .
 | 
						|
          make VERBOSE=1
 | 
						|
    
 | 
						|
      - name: Test
 | 
						|
        run: |
 | 
						|
          ./bin/Linux/tests
 | 
						|
 | 
						|
      - name: Package
 | 
						|
        run: |
 | 
						|
          make DESTDIR=$PWD/_install install
 | 
						|
          tar -c -I "gzip -9" -f irrlicht-linux.tar.gz -C ./_install/usr/local .
 | 
						|
 | 
						|
      - uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: irrlicht-linux
 | 
						|
          path: ./irrlicht-linux.tar.gz
 | 
						|
 | 
						|
  linux-gles:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container:
 | 
						|
      image: ubuntu:bionic
 | 
						|
      env: { LANG: "C.UTF-8" }
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install deps
 | 
						|
        run: |
 | 
						|
          apt-get update
 | 
						|
          apt-get install g++ cmake libxi-dev libgles2-mesa-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          sed '/#define _IRR_COMPILE_WITH_OGLES2_/ s|^//||g' -i include/IrrCompileConfig.h
 | 
						|
          sed '/#define _IRR_COMPILE_WITH_OPENGL_/ s|^|//|g' -i include/IrrCompileConfig.h
 | 
						|
          cmake . -DBUILD_EXAMPLES=1
 | 
						|
          make -j2
 | 
						|
 | 
						|
      - name: Test (headless)
 | 
						|
        run: |
 | 
						|
          cd bin/Linux
 | 
						|
          ./AutomatedTest null
 | 
						|
 | 
						|
      - name: Test (Xvfb)
 | 
						|
        run: |
 | 
						|
          cd bin/Linux
 | 
						|
          LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest
 | 
						|
 | 
						|
  linux-sdl:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container:
 | 
						|
      image: ubuntu:jammy
 | 
						|
      env: { LANG: "C.UTF-8" }
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install deps
 | 
						|
        run: |
 | 
						|
          apt-get update
 | 
						|
          apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev -qyy
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          sed '/#define _IRR_COMPILE_WITH_SDL_DEVICE_/ s|^//||g' -i include/IrrCompileConfig.h
 | 
						|
          cmake . -DBUILD_EXAMPLES=1
 | 
						|
          make -j2
 | 
						|
 | 
						|
      - name: Test (headless)
 | 
						|
        run: |
 | 
						|
          cd bin/Linux
 | 
						|
          ./AutomatedTest null
 | 
						|
 | 
						|
  linux-minimum-cmake:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container:
 | 
						|
      image: ubuntu:bionic
 | 
						|
      env: { LANG: "C.UTF-8" }
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Install deps
 | 
						|
        run: |
 | 
						|
          apt-get update
 | 
						|
          apt-get install unzip g++-5 libidn11 libxi-dev libgl1-mesa-dev libpng-dev libjpeg-dev zlib1g-dev -qyy
 | 
						|
 | 
						|
      - name: Setup CMake
 | 
						|
        uses: lukka/get-cmake@latest
 | 
						|
        with:
 | 
						|
          cmakeVersion: 3.5.2
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          mkdir build
 | 
						|
          cd build
 | 
						|
          cmake -G Ninja -DCMAKE_CXX_COMPILER=/usr/bin/g++-5 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" ..
 | 
						|
          cmake --build .
 | 
						|
          cd ..
 | 
						|
 | 
						|
      - name: Test
 | 
						|
        run: |
 | 
						|
          ./build/bin/Linux/tests
 | 
						|
 | 
						|
  win32:
 | 
						|
    runs-on: ubuntu-20.04
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install compiler
 | 
						|
        run: |
 | 
						|
          sudo apt-get update && sudo apt-get install cmake -qyy
 | 
						|
          wget http://minetest.kitsunemimi.pw/mingw-w64-i686_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz
 | 
						|
          sudo tar -xaf mingw.tar.xz -C /usr
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          ./scripts/ci-build-mingw.sh package
 | 
						|
        env:
 | 
						|
          CC: i686-w64-mingw32-gcc
 | 
						|
          CXX: i686-w64-mingw32-g++
 | 
						|
 | 
						|
      - uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: irrlicht-win32
 | 
						|
          path: ./irrlicht-win32.zip
 | 
						|
 | 
						|
  win64:
 | 
						|
    runs-on: ubuntu-20.04
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install compiler
 | 
						|
        run: |
 | 
						|
          sudo apt-get update && sudo apt-get install cmake -qyy
 | 
						|
          wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz
 | 
						|
          sudo tar -xaf mingw.tar.xz -C /usr
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          ./scripts/ci-build-mingw.sh package
 | 
						|
        env:
 | 
						|
          CC: x86_64-w64-mingw32-gcc
 | 
						|
          CXX: x86_64-w64-mingw32-g++
 | 
						|
 | 
						|
      - uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: irrlicht-win64
 | 
						|
          path: ./irrlicht-win64.zip
 | 
						|
 | 
						|
  macos:
 | 
						|
    runs-on: macos-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install deps
 | 
						|
        run: |
 | 
						|
          brew update
 | 
						|
          brew install cmake libpng jpeg
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: |
 | 
						|
          cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1
 | 
						|
          make -j3
 | 
						|
 | 
						|
      - name: Test (headless)
 | 
						|
        run: |
 | 
						|
          ./bin/OSX/AutomatedTest null
 | 
						|
 | 
						|
  msvc:
 | 
						|
    name: VS 2019 ${{ matrix.config.arch }}
 | 
						|
    runs-on: windows-2019
 | 
						|
    env:
 | 
						|
      VCPKG_VERSION: 14e7bb4ae24616ec54ff6b2f6ef4e8659434ea44
 | 
						|
        # 2022.05.10
 | 
						|
      vcpkg_packages: zlib libpng libjpeg-turbo opengl-registry
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        config:
 | 
						|
          -
 | 
						|
            arch: x86
 | 
						|
            generator: "-G'Visual Studio 16 2019' -A Win32"
 | 
						|
            vcpkg_triplet: x86-windows
 | 
						|
          -
 | 
						|
            arch: x64
 | 
						|
            generator: "-G'Visual Studio 16 2019' -A x64"
 | 
						|
            vcpkg_triplet: x64-windows
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
 | 
						|
      - name: Restore from cache and run vcpkg
 | 
						|
        uses: lukka/run-vcpkg@v7
 | 
						|
        with:
 | 
						|
          vcpkgArguments: ${{env.vcpkg_packages}}
 | 
						|
          vcpkgDirectory: '${{ github.workspace }}\vcpkg'
 | 
						|
          appendedCacheKey: ${{ matrix.config.vcpkg_triplet }}
 | 
						|
          vcpkgGitCommitId: ${{ env.VCPKG_VERSION }}
 | 
						|
          vcpkgTriplet: ${{ matrix.config.vcpkg_triplet }}
 | 
						|
 | 
						|
      - name: CMake
 | 
						|
        run: |
 | 
						|
            cmake ${{matrix.config.generator}}  `
 | 
						|
            -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake"  `
 | 
						|
            -DCMAKE_BUILD_TYPE=Release .
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        run: cmake --build . --config Release
 | 
						|
 | 
						|
      - name: Create artifact folder
 | 
						|
        run: |
 | 
						|
          mkdir artifact/
 | 
						|
          mkdir artifact/lib/
 | 
						|
 | 
						|
      - name: Move dlls into artifact folder
 | 
						|
        run: move bin\Win32-VisualStudio\Release\* artifact\lib\
 | 
						|
 | 
						|
      - name: Move includes into artifact folder
 | 
						|
        run: move include artifact/
 | 
						|
 | 
						|
      - name: Upload Artifact
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: msvc-${{ matrix.config.arch }}
 | 
						|
          path: artifact/
 |