Bläddra i källkod

Switch from Travis CI to GitHub Actions

GitHub Actions should be significantly faster than Travis CI.
Hugo Locurcio 4 år sedan
förälder
incheckning
610c42f219
3 ändrade filer med 132 tillägg och 75 borttagningar
  1. 6 0
      .github/dependabot.yml
  2. 126 0
      .github/workflows/ci.yml
  3. 0 75
      .travis.yml

+ 6 - 0
.github/dependabot.yml

@@ -0,0 +1,6 @@
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "daily"

+ 126 - 0
.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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        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/[email protected]
+        with:
+          name: godot-cpp-macos-x86_64-release
+          path: bin/libgodot-cpp.osx.release.64.a
+          if-no-files-found: error

+ 0 - 75
.travis.yml

@@ -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