mirror of
https://github.com/godotengine/godot-cpp.git
synced 2025-12-31 01:48:45 +03:00
This is taken from the Godot repository, so formatting is similar. This updates the style rules as well. Also fix style in files to conform with this version.
170 lines
5.0 KiB
YAML
170 lines
5.0 KiB
YAML
name: Continuous integration
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
linux:
|
|
name: Build (Linux, GCC)
|
|
runs-on: ubuntu-16.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.3.4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Set up Python (for SCons)
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9.1'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -qqq build-essential pkg-config
|
|
python -m pip install scons
|
|
curl -LO https://downloads.tuxfamily.org/godotengine/3.2.3/Godot_v3.2.3-stable_linux_server.64.zip
|
|
unzip Godot_v3.2.3-stable_linux_server.64.zip
|
|
|
|
- name: Build godot-cpp
|
|
run: |
|
|
scons target=release generate_bindings=yes -j $(nproc)
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2.2.1
|
|
with:
|
|
name: godot-cpp-linux-glibc2.23-x86_64-release
|
|
path: bin/libgodot-cpp.linux.release.64.a
|
|
if-no-files-found: error
|
|
|
|
- name: Build test GDNative library
|
|
run: |
|
|
scons target=release platform=linux bits=64 -j $(nproc) -C test
|
|
|
|
- name: Run test GDNative library
|
|
run: |
|
|
./Godot_v3.2.3-stable_linux_server.64 --path test -s script.gd
|
|
|
|
windows-msvc:
|
|
name: Build (Windows, MSVC)
|
|
runs-on: windows-2019
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.3.4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Set up Python (for SCons)
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9.1'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install scons
|
|
|
|
- name: Build godot-cpp
|
|
run: |
|
|
scons target=release generate_bindings=yes -j $env:NUMBER_OF_PROCESSORS
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2.2.1
|
|
with:
|
|
name: godot-cpp-windows-msvc2019-x86_64-release
|
|
path: bin/libgodot-cpp.windows.release.64.lib
|
|
if-no-files-found: error
|
|
|
|
windows-mingw:
|
|
name: Build (Windows, MinGW)
|
|
runs-on: windows-2019
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.3.4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Set up Python (for SCons)
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9.1'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install scons
|
|
|
|
- name: Build godot-cpp
|
|
# Install GCC from Scoop as the default supplied GCC doesn't work ("Error 1").
|
|
run: |
|
|
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
|
|
scoop install gcc
|
|
g++ --version
|
|
gcc --version
|
|
scons target=release generate_bindings=yes use_mingw=yes -j $env:NUMBER_OF_PROCESSORS
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2.2.1
|
|
with:
|
|
name: godot-cpp-linux-mingw-x86_64-release
|
|
path: bin/libgodot-cpp.windows.release.64.a
|
|
if-no-files-found: error
|
|
|
|
macos:
|
|
name: Build (macOS, Clang)
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.3.4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Set up Python (for SCons)
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9.1'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install scons
|
|
curl -LO https://downloads.tuxfamily.org/godotengine/3.2.3/Godot_v3.2.3-stable_osx.64.zip
|
|
unzip Godot_v3.2.3-stable_osx.64.zip
|
|
|
|
- name: Build godot-cpp
|
|
run: |
|
|
scons target=release generate_bindings=yes -j $(sysctl -n hw.logicalcpu)
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2.2.1
|
|
with:
|
|
name: godot-cpp-macos-x86_64-release
|
|
path: bin/libgodot-cpp.osx.release.64.a
|
|
if-no-files-found: error
|
|
|
|
- name: Build test GDNative library
|
|
run: |
|
|
scons target=release platform=osx bits=64 -j $(sysctl -n hw.logicalcpu) -C test
|
|
|
|
- name: Run test GDNative library
|
|
run: |
|
|
./Godot.app/Contents/MacOS/Godot --path test -s script.gd
|
|
|
|
static-checks:
|
|
name: Static Checks (clang-format)
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- 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
|