forked from Mirrorlandia_minetest/irrlicht
260 lines
6.8 KiB
YAML
260 lines
6.8 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 -j2
|
|
|
|
- name: Test
|
|
run: |
|
|
ctest --output-on-failure
|
|
|
|
- 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: |
|
|
cmake . -DBUILD_EXAMPLES=1 -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON
|
|
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 ogles2
|
|
|
|
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: |
|
|
cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON
|
|
make -j2
|
|
|
|
- name: Test (headless)
|
|
run: |
|
|
cd bin/Linux
|
|
./AutomatedTest null
|
|
|
|
linux-sdl-gl3:
|
|
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 xvfb -qyy
|
|
|
|
- name: Build
|
|
run: |
|
|
cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_OPENGL3=ON
|
|
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 opengl3
|
|
|
|
linux-sdl-gles2:
|
|
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 xvfb -qyy
|
|
|
|
- name: Build
|
|
run: |
|
|
cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON
|
|
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 ogles2
|
|
|
|
mingw:
|
|
name: "MinGW ${{matrix.config.variant}}${{matrix.config.extras}}"
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- {variant: win32, arch: i686}
|
|
- {variant: win64, arch: x86_64}
|
|
- {variant: win32, arch: i686, extras: "-sdl"}
|
|
- {variant: win64, arch: x86_64, extras: "-sdl"}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install compiler
|
|
run: |
|
|
sudo apt-get update && sudo apt-get install cmake -qyy
|
|
./scripts/ci-get-mingw.sh ${{matrix.config.arch}}
|
|
|
|
- name: Build
|
|
run: |
|
|
./scripts/ci-build-mingw.sh package
|
|
env:
|
|
CC: ${{matrix.config.arch}}-w64-mingw32-gcc
|
|
CXX: ${{matrix.config.arch}}-w64-mingw32-g++
|
|
extras: ${{matrix.config.extras}}
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: irrlicht-${{matrix.config.variant}}${{matrix.config.extras}}
|
|
path: ./irrlicht-${{matrix.config.variant}}${{matrix.config.extras}}.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 }} ${{ matrix.sdl.label }}
|
|
runs-on: windows-2019
|
|
env:
|
|
VCPKG_VERSION: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50
|
|
# 2023.10.19
|
|
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
|
|
sdl:
|
|
-
|
|
use: FALSE
|
|
label: '(no SDL)'
|
|
-
|
|
use: TRUE
|
|
label: '(with SDL)'
|
|
vcpkg_packages: sdl2
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Restore from cache and run vcpkg
|
|
uses: lukka/run-vcpkg@v7
|
|
with:
|
|
vcpkgArguments: ${{env.vcpkg_packages}} ${{matrix.sdl.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}} `
|
|
-DUSE_SDL2=${{matrix.sdl.use}} `
|
|
-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/
|