CI: Fix MinGW install error by pinning to earlier version #1542
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous integration | |
on: [push, pull_request] | |
env: | |
# Only used for the cache key. Increment version to force clean build. | |
GODOT_BASE_BRANCH: 3.x | |
concurrency: | |
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: π§ Linux (GCC) | |
os: ubuntu-20.04 | |
platform: linux | |
artifact-name: godot-cpp-linux-glibc2.31-x86_64-release | |
artifact-path: bin/libgodot-cpp.linux.release.64.a | |
godot_zip: Godot_v3.5-stable_linux_server.64.zip | |
executable: Godot_v3.5-stable_linux_server.64 | |
cache-name: linux-x86_64 | |
- name: π Windows (x86_64, MSVC) | |
os: windows-2022 | |
platform: windows | |
artifact-name: godot-cpp-windows-msvc2019-x86_64-release | |
artifact-path: bin/libgodot-cpp.windows.release.64.lib | |
cache-name: windows-x86_64-msvc | |
- name: π Windows (x86_64, MinGW) | |
os: windows-2022 | |
platform: windows | |
artifact-name: godot-cpp-linux-mingw-x86_64-release | |
artifact-path: bin/libgodot-cpp.windows.release.64.a | |
flags: use_mingw=yes | |
cache-name: windows-x86_64-mingw | |
- name: π macOS (universal) | |
os: macos-13 | |
platform: osx | |
artifact-name: godot-cpp-macos-universal-release | |
artifact-path: bin/libgodot-cpp.osx.release.64.a | |
flags: macos_arch=universal | |
godot_zip: Godot_v3.5-stable_osx.universal.zip | |
executable: Godot.app/Contents/MacOS/Godot | |
cache-name: macos-unversal | |
- name: π€ Android (arm64) | |
os: ubuntu-20.04 | |
platform: android | |
artifact-name: godot-cpp-android-arm64-release | |
artifact-path: bin/libgodot-cpp.android.release.arm64v8.a | |
flags: ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME android_arch=arm64v8 | |
cache-name: android-arm64 | |
- name: π iOS (arm64) | |
os: macos-13 | |
platform: ios | |
artifact-name: godot-cpp-ios-arm64-release | |
artifact-path: bin/libgodot-cpp.ios.release.arm64.a | |
cache-name: ios-arm64 | |
env: | |
SCONS_CACHE: ${{ github.workspace }}/.scons-cache/ | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Godot build cache | |
uses: ./.github/actions/godot-cache | |
with: | |
cache-name: ${{ matrix.cache-name }} | |
continue-on-error: true | |
- name: Set up Python (for SCons) | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Linux dependencies | |
if: ${{ matrix.platform == 'linux' }} | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -qqq build-essential pkg-config | |
- name: Install scons | |
run: | | |
python -m pip install scons | |
- name: Windows dependency (MinGW) | |
if: ${{ matrix.platform == 'windows' }} | |
uses: egor-tensin/setup-mingw@v2 | |
with: | |
version: 12.2.0 | |
- name: Build godot-cpp (debug) | |
run: | | |
scons platform=${{ matrix.platform }} target=debug ${{ matrix.flags }} | |
- name: Build test without rebuilding godot-cpp (debug) | |
run: | | |
cd test | |
scons platform=${{ matrix.platform }} target=debug ${{ matrix.flags }} build_library=no | |
- name: Build test and godot-cpp (release) | |
run: | | |
cd test | |
scons platform=${{ matrix.platform }} target=release ${{ matrix.flags }} | |
- name: Run test GDNative library | |
if: ${{ matrix.platform == 'linux' || matrix.platform == 'osx' }} | |
run: | | |
curl -LO https://downloads.tuxfamily.org/godotengine/3.5/${{ matrix.godot_zip }} | |
unzip ${{ matrix.godot_zip }} | |
./${{ matrix.executable }} --path test -s script.gd | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.artifact-name }} | |
path: ${{ matrix.artifact-path }} | |
if-no-files-found: error | |
static-checks: | |
name: π Static Checks (clang-format) | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Make apt sources.list use the default Ubuntu repositories | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/* | |
sudo cp -f misc/ci/sources.list /etc/apt/sources.list | |
sudo apt-get update | |
- name: Install dependencies | |
run: | | |
sudo apt-get install -qq dos2unix recode clang-format-11 | |
sudo update-alternatives --remove-all clang-format | |
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-11 100 | |
- name: Style checks via clang-format | |
run: | | |
bash ./misc/scripts/clang_format.sh | |
- name: Bindings generation checks (ensures get_file_list returns all generated files) | |
run: | | |
python ./misc/scripts/check_get_file_list.py |