name: build_and_test on: [push, pull_request] jobs: docs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: prepare run: | sudo apt-get update sudo apt-get install codespell sudo apt-get install python3-sphinx - name: spellcheck run: | make codespell - name: docs run: | make docs android-arm: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: prepare run: | sudo apt-get update sudo apt-get install libc6-dev-i386 ANDROID_SDK_ROOT=/usr/local/lib/android/sdk SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager echo "y" | $SDKMANAGER "ndk;23.2.8568313" - name: android-arm-make-debug run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm-debug - name: android-arm-make-development run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm-development - name: android-arm-make-release run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm-release - name: android-arm64-make-debug run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm64-debug - name: android-arm64-make-development run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm64-development - name: android-arm64-make-release run: | export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 export ANDROID_NDK_ABI=23 make MAKE_JOBS=4 android-arm64-release html5: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: prepare run: | git clone https://github.com/emscripten-core/emsdk.git cd emsdk ./emsdk install latest ./emsdk activate latest - name: wasm-make-debug run: | export EMSCRIPTEN=$GITHUB_WORKSPACE/emsdk/upstream/emscripten make MAKE_JOBS=4 wasm-debug - name: wasm-test-debug run: | cd ./build/wasm/bin && node crown-debug --run-unit-tests - name: wasm-make-development run: | export EMSCRIPTEN=$GITHUB_WORKSPACE/emsdk/upstream/emscripten make MAKE_JOBS=4 wasm-development - name: wasm-test-development run: | cd ./build/wasm/bin && node crown-development --run-unit-tests - name: wasm-make-release run: | export EMSCRIPTEN=$GITHUB_WORKSPACE/emsdk/upstream/emscripten make MAKE_JOBS=4 wasm-release - name: wasm-test-release run: | cd ./build/wasm/bin && node crown-release --run-unit-tests linux: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: prepare run: | sudo apt-get update sudo apt-get install mesa-common-dev libgl1-mesa-dev libpulse-dev libxrandr-dev libc6-dev-i386 sudo apt-get install libgtk-3-dev sudo add-apt-repository ppa:vala-team sudo apt-get install valac libgee-0.8-dev sudo apt-get install libxml2-utils # xml-stripblanks - name: linux-make-debug64 run: | make MAKE_JOBS=4 linux-debug64 - name: linux-test-debug64 run: | cd ./build/linux64/bin && ./crown-debug --run-unit-tests - name: linux-make-development64 run: | make MAKE_JOBS=4 linux-development64 - name: linux-test-development64 run: | cd ./build/linux64/bin && ./crown-development --run-unit-tests - name: linux-make-release64 run: | make MAKE_JOBS=4 linux-release64 - name: linux-test-release64 run: | cd ./build/linux64/bin && ./crown-release --run-unit-tests - name: linux-make-crown-editor-debug64 run: | make MAKE_JOBS=4 crown-editor-linux-debug64 - name: linux-make-crown-editor-release64 run: | make MAKE_JOBS=4 crown-editor-linux-release64 - name: linux-make-crown-launcher-debug64 run: | make MAKE_JOBS=4 crown-launcher-linux-debug64 - name: linux-make-crown-launcher-release64 run: | make MAKE_JOBS=4 crown-launcher-linux-release64 windows: runs-on: windows-2022 steps: - uses: actions/checkout@v4 - name: luajit shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cd "3rdparty\luajit\src" .\msvcbuild.bat - name: luajit-copy-libs shell: cmd run: | md "build\windows64\bin" cp -r 3rdparty/luajit/src/jit 3rdparty/luajit/src/luajit.exe 3rdparty/luajit/src/lua51.dll 3rdparty/luajit/src/lua51.lib build/windows64/bin - name: windows-generate-projects shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 scripts\genie\bin\windows\genie --file=scripts\genie.lua --with-tools --no-editor vs2022 - name: windows-make-debug64 shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 devenv build/projects/vs2022/crown.sln /Build "debug|x64" /Project crown - name: windows-test-debug64 shell: cmd run: | build\windows64\bin\crown-debug.exe --run-unit-tests - name: windows-make-development64 shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 devenv build/projects/vs2022/crown.sln /Build "development|x64" /Project crown - name: windows-test-development64 shell: cmd run: | build\windows64\bin\crown-development.exe --run-unit-tests - name: windows-make-release64 shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 devenv build/projects/vs2022/crown.sln /Build "release|x64" /Project crown - name: windows-test-release64 shell: cmd run: | build\windows64\bin\crown-release.exe --run-unit-tests - uses: msys2/setup-msys2@v2 - name: mingw-prepare shell: msys2 {0} run: | pacman --noconfirm -S make mingw-w64-x86_64-gcc mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gtk3 mingw-w64-x86_64-vala mingw-w64-x86_64-libgee - name: mingw-make-crown-editor-debug64 shell: msys2 {0} run: | export MINGW=/mingw64 make MAKE_JOBS=4 crown-editor-mingw-debug64 - name: mingw-make-crown-editor-release64 shell: msys2 {0} run: | export MINGW=/mingw64 make MAKE_JOBS=4 crown-editor-mingw-release64 - name: mingw-make-crown-launcher-debug64 shell: msys2 {0} run: | export MINGW=/mingw64 make MAKE_JOBS=4 crown-launcher-mingw-debug64 - name: mingw-make-crown-launcher-release64 shell: msys2 {0} run: | export MINGW=/mingw64 make MAKE_JOBS=4 crown-launcher-mingw-release64 code-style: runs-on: ubuntu-22.04 needs: [android-arm, html5, linux, windows] steps: - uses: actions/checkout@v4 - name: format run: | make MAKE_JOBS=4 format-sources - name: check-diff run: | exit `git diff --shortstat | wc -l`