summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/android_builds.yml22
-rw-r--r--.github/workflows/ios_builds.yml14
-rw-r--r--.github/workflows/javascript_builds.disabled14
-rw-r--r--.github/workflows/linux_builds.yml95
-rw-r--r--.github/workflows/macos_builds.yml23
-rw-r--r--.github/workflows/static_checks.yml4
-rw-r--r--.github/workflows/windows_builds.yml39
7 files changed, 165 insertions, 46 deletions
diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml
index 6b16c10b3e..3c1e6a6b72 100644
--- a/.github/workflows/android_builds.yml
+++ b/.github/workflows/android_builds.yml
@@ -1,9 +1,10 @@
-name: Android Builds
+name: 🤖 Android Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs:
@@ -26,14 +27,14 @@ jobs:
- name: Configure dependencies
run: |
sudo apt-get install openjdk-8-jdk
- echo "::set-env name=JAVA_HOME::usr/lib/jvm/java-8-openjdk-amd64"
+ echo 'JAVA_HOME=usr/lib/jvm/java-8-openjdk-amd64' >> $GITHUB_ENV
- name: Install Android SDK and NDK
run: |
- echo "::set-env name=PATH::/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:${PATH}"
+ echo '/usr/lib/jvm/java-8-openjdk-amd64/jre/bin' >> $GITHUB_PATH
java -version
- echo "::set-env name=ANDROID_HOME::$(pwd)/godot-dev/build-tools/android-sdk"
- echo "::set-env name=ANDROID_NDK_ROOT::$(pwd)/godot-dev/build-tools/android-ndk"
+ echo "ANDROID_HOME=$(pwd)/godot-dev/build-tools/android-sdk" >> $GITHUB_ENV
+ echo "ANDROID_NDK_ROOT=$(pwd)/godot-dev/build-tools/android-ndk" >> $GITHUB_ENV
misc/ci/android-tools-linux.sh
source ~/.bashrc
@@ -70,4 +71,11 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=android target=release tools=no
+ scons target=release tools=no
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
diff --git a/.github/workflows/ios_builds.yml b/.github/workflows/ios_builds.yml
index 0657a6cb18..80db5d68ce 100644
--- a/.github/workflows/ios_builds.yml
+++ b/.github/workflows/ios_builds.yml
@@ -1,9 +1,10 @@
-name: iOS Builds
+name: 🍏 iOS Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=iphone verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs:
@@ -47,4 +48,11 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=iphone target=release tools=no
+ scons target=release tools=no
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
diff --git a/.github/workflows/javascript_builds.disabled b/.github/workflows/javascript_builds.disabled
index 09c4c41d53..8ed77726cc 100644
--- a/.github/workflows/javascript_builds.disabled
+++ b/.github/workflows/javascript_builds.disabled
@@ -1,9 +1,10 @@
-name: JavaScript Builds
+name: 🌐 JavaScript Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=javascript verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_LIMIT: 4096
EM_VERSION: 1.39.20
EM_CACHE_FOLDER: 'emsdk-cache'
@@ -74,4 +75,11 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=javascript target=release tools=no use_closure_compiler=yes
+ scons target=release tools=no use_closure_compiler=yes
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 85ae6a5a8f..b170889cb3 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -1,13 +1,14 @@
-name: Linux Builds
+name: 🐧 Linux Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=linuxbsd verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs:
- linux-editor:
+ linux-editor-mono:
runs-on: "ubuntu-20.04"
name: Editor w/ Mono (target=release_debug, tools=yes, tests=yes)
@@ -61,14 +62,89 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=linuxbsd tools=yes tests=yes target=release_debug module_mono_enabled=yes mono_glue=no
+ scons tools=yes tests=yes target=release_debug module_mono_enabled=yes mono_glue=no
+ ls -l bin/
# Execute unit tests for the editor
- name: Unit Tests
run: |
./bin/godot.linuxbsd.opt.tools.64.mono --test
- linux-template:
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
+
+ linux-editor-sanitizers:
+ runs-on: "ubuntu-20.04"
+ name: Editor with sanitizers (target=debug, tools=yes, tests=yes, use_asan=yes, use_ubsan=yes)
+
+ steps:
+ - uses: actions/checkout@v2
+
+ # Azure repositories are not reliable, we need to prevent azure giving us packages.
+ - 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
+
+ # Install all packages (except scons)
+ - name: Configure dependencies
+ run: |
+ sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
+ libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
+
+ # Upload cache on completion and check it out now
+ - name: Load .scons_cache directory
+ id: linux-editor-cache
+ uses: actions/cache@v2
+ with:
+ path: ${{github.workspace}}/.scons_cache/
+ key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
+ restore-keys: |
+ ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
+ ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
+ ${{github.job}}-${{env.GODOT_BASE_BRANCH}}
+
+ # Use python 3.x release (works cross platform; best to keep self contained in it's own step)
+ - name: Set up Python 3.x
+ uses: actions/setup-python@v2
+ with:
+ # Semantic version range syntax or exact version of a Python version
+ python-version: '3.x'
+ # Optional - x64 or x86 architecture, defaults to x64
+ architecture: 'x64'
+
+ # Setup scons, print python version and scons version info, so if anything is broken it won't run the build.
+ - name: Configuring Python packages
+ run: |
+ python -c "import sys; print(sys.version)"
+ python -m pip install scons
+ python --version
+ scons --version
+
+ # We should always be explicit with our flags usage here since it's gonna be sure to always set those flags
+ - name: Compilation
+ env:
+ SCONS_CACHE: ${{github.workspace}}/.scons_cache/
+ run: |
+ scons tools=yes tests=yes target=debug use_asan=yes use_ubsan=yes
+ ls -l bin/
+
+ # Execute unit tests for the editor
+ - name: Unit Tests
+ run: |
+ ./bin/godot.linuxbsd.tools.64s --test
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
+
+ linux-template-mono:
runs-on: "ubuntu-20.04"
name: Template w/ Mono (target=release, tools=no)
@@ -121,4 +197,11 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=linuxbsd target=release tools=no module_mono_enabled=yes mono_glue=no
+ scons target=release tools=no module_mono_enabled=yes mono_glue=no
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml
index bd3340111e..6a684872f2 100644
--- a/.github/workflows/macos_builds.yml
+++ b/.github/workflows/macos_builds.yml
@@ -1,9 +1,10 @@
-name: macOS Builds
+name: 🍎 macOS Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=osx verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_LIMIT: 4096
jobs:
@@ -49,13 +50,20 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=osx tools=yes tests=yes target=release_debug
+ scons tools=yes tests=yes target=release_debug
+ ls -l bin/
# Execute unit tests for the editor
- name: Unit Tests
run: |
./bin/godot.osx.opt.tools.64 --test
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
+
macos-template:
runs-on: "macos-latest"
name: Template (target=release, tools=no)
@@ -96,4 +104,11 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=osx target=release tools=no
+ scons target=release tools=no
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index ee01dba2ba..3fa759bb03 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -1,4 +1,4 @@
-name: Static Checks
+name: 📊 Static Checks
on: [push, pull_request]
jobs:
@@ -19,7 +19,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get install -qq dos2unix recode clang-format
- sudo pip3 install git+https://github.com/psf/black@master pygments
+ sudo pip3 install black==20.8b1 pygments
- name: File formatting checks (file_format.sh)
run: |
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index 0d3c78b45d..0af4d22b72 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -1,10 +1,11 @@
-name: Windows Builds
+name: 🏁 Windows Builds
on: [push, pull_request]
-# Global Cache Settings
+# Global Settings
# SCONS_CACHE for windows must be set in the build environment
env:
GODOT_BASE_BRANCH: master
+ SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes --jobs=2
SCONS_CACHE_MSVC_CONFIG: true
SCONS_CACHE_LIMIT: 4096
@@ -54,21 +55,19 @@ jobs:
env:
SCONS_CACHE: /.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=windows tools=yes tests=yes target=release_debug
+ scons tools=yes tests=yes target=release_debug
+ ls -l bin/
# Execute unit tests for the editor
- name: Unit Tests
run: |
./bin/godot.windows.opt.tools.64.exe --test
-# Build Product Upload (tested and working)
-# sorry this is disabled until github can give us some more space as we would hit our limit very quickly
-# tested this code and it works fine so just enable it to get them back
-# - name: publishing godot windows-editor
-# uses: actions/upload-artifact@v1
-# with:
-# name: windows-editor (x64)
-# path: bin/godot.windows.opt.tools.64.exe
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14
windows-template:
runs-on: "windows-latest"
@@ -111,13 +110,11 @@ jobs:
env:
SCONS_CACHE: /.scons_cache/
run: |
- scons -j2 verbose=yes warnings=all werror=yes platform=windows target=release tools=no
-
-# Build Product Upload (tested and working)
-# sorry this is disabled until github can give us some more space as we would hit our limit very quickly
-# tested this code and it works fine so just enable it to get them back
-# - name: publishing godot windows-template
-# uses: actions/upload-artifact@v1
-# with:
-# name: windows-template (x64)
-# path: bin/godot.windows.opt.64.exe
+ scons target=release tools=no
+ ls -l bin/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ github.job }}
+ path: bin/*
+ retention-days: 14