mirror of
https://github.com/minetest/minetest.git
synced 2024-12-25 23:47:29 +01:00
311 lines
8.6 KiB
YAML
311 lines
8.6 KiB
YAML
|
name: build
|
||
|
|
||
|
# build on c/cpp changes or workflow changes
|
||
|
on:
|
||
|
- push
|
||
|
- pull_request
|
||
|
|
||
|
jobs:
|
||
|
|
||
|
linux-gl:
|
||
|
runs-on: ubuntu-20.04
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install g++ cmake libxi-dev libgl1-mesa-dev libpng-dev libjpeg-dev zlib1g-dev -qyy
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake . -DUSE_SDL2=OFF
|
||
|
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@v4
|
||
|
with:
|
||
|
name: irrlicht-linux
|
||
|
path: ./irrlicht-linux.tar.gz
|
||
|
|
||
|
linux-gles:
|
||
|
# Xvfb test is broken on 20.04 for unknown reasons (not our bug)
|
||
|
runs-on: ubuntu-22.04
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo 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 -DUSE_SDL2=OFF -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-20.04
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev -qyy
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DCMAKE_BUILD_TYPE=Debug
|
||
|
make -j2
|
||
|
|
||
|
- name: Test (headless)
|
||
|
run: |
|
||
|
cd bin/Linux
|
||
|
./AutomatedTest null
|
||
|
|
||
|
linux-sdl-gl3:
|
||
|
# Xvfb test is broken on 20.04 for unknown reasons (not our bug)
|
||
|
runs-on: ubuntu-22.04
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo 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-20.04
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo 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-22.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@v4
|
||
|
- name: Install compiler
|
||
|
run: |
|
||
|
sudo apt-get update && sudo apt-get install cmake -qyy
|
||
|
./scripts/ci-get-mingw.sh
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
./scripts/ci-build-mingw.sh package
|
||
|
env:
|
||
|
CC: ${{matrix.config.arch}}-w64-mingw32-clang
|
||
|
CXX: ${{matrix.config.arch}}-w64-mingw32-clang++
|
||
|
extras: ${{matrix.config.extras}}
|
||
|
|
||
|
- uses: actions/upload-artifact@v4
|
||
|
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@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
brew update --auto-update
|
||
|
brew install cmake libpng jpeg
|
||
|
env:
|
||
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
|
||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1
|
||
|
make -j3
|
||
|
|
||
|
- name: Test (headless)
|
||
|
run: |
|
||
|
./bin/OSX/AutomatedTest null
|
||
|
|
||
|
macos-sdl:
|
||
|
runs-on: macos-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
brew update --auto-update
|
||
|
brew install cmake libpng jpeg sdl2
|
||
|
env:
|
||
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
|
||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1 -DUSE_SDL2=1
|
||
|
make -j3
|
||
|
|
||
|
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
|
||
|
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)'
|
||
|
vcpkg_packages: opengl-registry
|
||
|
-
|
||
|
use: TRUE
|
||
|
label: '(with SDL)'
|
||
|
vcpkg_packages: sdl2
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v4
|
||
|
|
||
|
- 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@v4
|
||
|
with:
|
||
|
name: msvc-${{ matrix.config.arch }}-${{matrix.sdl.use}}
|
||
|
path: artifact/
|
||
|
|
||
|
android:
|
||
|
name: Android ${{ matrix.arch }}
|
||
|
runs-on: ubuntu-20.04
|
||
|
env:
|
||
|
ndk_version: "r25c"
|
||
|
ANDROID_NDK: ${{ github.workspace }}/android-ndk
|
||
|
strategy:
|
||
|
matrix:
|
||
|
arch: [armeabi-v7a, arm64-v8a, x86, x86_64]
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v4
|
||
|
|
||
|
- name: Install deps
|
||
|
run: |
|
||
|
sudo rm /var/lib/man-db/auto-update
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install -qyy wget unzip zip gcc-multilib make cmake
|
||
|
|
||
|
- name: Cache NDK
|
||
|
id: cache-ndk
|
||
|
uses: actions/cache@v4
|
||
|
with:
|
||
|
key: android-ndk-${{ env.ndk_version }}-linux
|
||
|
path: ${{ env.ANDROID_NDK }}
|
||
|
|
||
|
- name: Install NDK
|
||
|
run: |
|
||
|
wget --progress=bar:force "http://dl.google.com/android/repository/android-ndk-${ndk_version}-linux.zip"
|
||
|
unzip -q "android-ndk-${ndk_version}-linux.zip"
|
||
|
rm "android-ndk-${ndk_version}-linux.zip"
|
||
|
mv "android-ndk-${ndk_version}" "${ANDROID_NDK}"
|
||
|
if: ${{ steps.cache-ndk.outputs.cache-hit != 'true' }}
|
||
|
|
||
|
- name: Build
|
||
|
run: ./scripts/ci-build-android.sh ${{ matrix.arch }}
|
||
|
|
||
|
#- name: Upload Artifact
|
||
|
# uses: actions/upload-artifact@v4
|
||
|
# with:
|
||
|
# name: irrlicht-android-${{ matrix.arch }}
|
||
|
# path: ${{ runner.temp }}/pkg/${{ matrix.arch }}
|