summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2020-12-16 19:51:26 +0100
committerHugo Locurcio <hugo.locurcio@hugo.pro>2020-12-23 22:34:40 +0100
commit610c42f219b7b21614707189847b279f0898f829 (patch)
treec9543e87a4c70afabd063af20be47db7966c7cda
parent43828ebb3931b9117ad57f08cc457e052fdfd631 (diff)
downloadredot-cpp-610c42f219b7b21614707189847b279f0898f829.tar.gz
Switch from Travis CI to GitHub Actions
GitHub Actions should be significantly faster than Travis CI.
-rw-r--r--.github/dependabot.yml6
-rw-r--r--.github/workflows/ci.yml126
-rw-r--r--.travis.yml75
3 files changed, 132 insertions, 75 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..1230149
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,6 @@
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..9000161
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,126 @@
+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
+
+ - 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
+
+ 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-11.0
+ 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 $(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
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index c6b08f2..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-language: cpp
-dist: xenial
-osx_image: xcode10.1
-
-env:
- global:
- - SCONS_CACHE="$HOME/.scons_cache"
- - SCONS_CACHE_LIMIT=1024
-
-cache:
- directories:
- - $SCONS_CACHE
-
-matrix:
- include:
- - name: Linux Debug + Static Checks
- os: linux
- compiler: gcc
- env: TARGET=debug STATIC_CHECKS=yes
- addons:
- apt:
- packages:
- - clang-format-8
- - [scons, pkg-config, build-essential, p7zip-full]
-
- - name: Linux Release
- os: linux
- compiler: gcc
- addons:
- apt:
- packages:
- - [scons, pkg-config, build-essential, p7zip-full]
- env: TARGET=release
-
- - name: macOS Debug
- os: osx
- compiler: clang
- env: TARGET=debug
-
- - name: macOS Release
- os: osx
- compiler: clang
- env: TARGET=release
-
- - name: Windows MSVC Debug
- os: windows
- env: TARGET=debug
-
- - name: Windows MSVC Release
- os: windows
- env: TARGET=release
-
-install:
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- brew update;
- brew install scons p7zip;
- fi
-
- - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
- curl -LO https://downloads.sourceforge.net/project/scons/scons-local/3.1.2/scons-local-3.1.2.zip;
- unzip scons-local-3.1.2.zip;
- fi
-
-script:
- - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
- export SCONS="./scons.bat";
- else
- export SCONS="scons";
- fi
-
- - $SCONS target="$TARGET" bits=64 generate_bindings=yes $SCONS_FLAGS;
-
- - if [[ "$STATIC_CHECKS" == "yes" ]]; then
- sh ./misc/travis/clang-format.sh;
- fi