From 3ebd5a23017b2d051ff7b12f277b622f6961cafe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 22 Oct 2020 13:27:03 +0200 Subject: [PATCH] CI: Sync configuration with master branch - Factors out common arguments in SCONSFLAGS - Upload artifacts - Disable debug symbols for release templates --- .github/workflows/android_builds.yml | 24 ++++++++++------- .github/workflows/ios_builds.yml | 12 +++++++-- .github/workflows/javascript_builds.yml | 13 +++++++-- .github/workflows/linux_builds.yml | 35 +++++++++++++++++++------ .github/workflows/macos_builds.yml | 21 ++++++++++++--- .github/workflows/static_checks.yml | 8 +++++- .github/workflows/windows_builds.yml | 35 +++++++++++-------------- 7 files changed, 103 insertions(+), 45 deletions(-) diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml index 2d26be1671d..ab876e19f9c 100644 --- a/.github/workflows/android_builds.yml +++ b/.github/workflows/android_builds.yml @@ -1,9 +1,10 @@ name: 🤖 Android Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: GODOT_BASE_BRANCH: 3.2 + SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes --jobs=2 SCONS_CACHE_LIMIT: 4096 jobs: @@ -18,25 +19,21 @@ jobs: # 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 - # The system image has a non-working Java version: - # /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/java - # openjdk version "11.0.8" 2020-07-14 - # Install the official version. - - name: Install Java + # Install dependencies + - name: Install Java, Android SDK and NDK run: | sudo apt-get install openjdk-8-jdk sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $GITHUB_ENV - - - name: Install Android SDK and NDK - run: | java -version misc/ci/android-tools-linux.sh 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 + source ~/.bashrc # Upload cache on completion and check it out now - name: Load .scons_cache directory @@ -71,4 +68,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 34ff756d042..28e6b195e4e 100644 --- a/.github/workflows/ios_builds.yml +++ b/.github/workflows/ios_builds.yml @@ -1,9 +1,10 @@ name: 🍏 iOS Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: GODOT_BASE_BRANCH: 3.2 + 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.yml b/.github/workflows/javascript_builds.yml index 448148680d1..ceff1afda87 100644 --- a/.github/workflows/javascript_builds.yml +++ b/.github/workflows/javascript_builds.yml @@ -1,9 +1,10 @@ name: 🌐 JavaScript Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: GODOT_BASE_BRANCH: 3.2 + 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' @@ -19,6 +20,7 @@ jobs: # 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 @@ -73,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 0c974ed89eb..80ef212d988 100644 --- a/.github/workflows/linux_builds.yml +++ b/.github/workflows/linux_builds.yml @@ -1,13 +1,14 @@ name: 🐧 Linux Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: GODOT_BASE_BRANCH: 3.2 + 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) @@ -17,6 +18,7 @@ jobs: # 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 @@ -60,9 +62,16 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=x11 tools=yes target=release_debug module_mono_enabled=yes mono_glue=no + scons tools=yes target=release_debug module_mono_enabled=yes mono_glue=no + ls -l bin/ - linux-template: + - 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) @@ -72,6 +81,7 @@ jobs: # 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 @@ -114,9 +124,16 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=x11 target=release tools=no module_mono_enabled=yes mono_glue=no + scons target=release tools=no module_mono_enabled=yes mono_glue=no debug_symbols=no + ls -l bin/ - linux-sanitizer: + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.job }} + path: bin/* + retention-days: 14 + + linux-editor-sanitizers: runs-on: "ubuntu-20.04" name: Editor and exported project with sanitizers (target=debug/release, tools=yes/no, debug_symbols=yes/full, use_ubsan=yes, use_asan=yes) @@ -126,6 +143,7 @@ jobs: # 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 @@ -170,8 +188,9 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=x11 tools=yes target=debug use_ubsan=yes use_asan=yes - scons -j2 verbose=yes warnings=all werror=yes platform=x11 tools=no target=release debug_symbols=full use_ubsan=yes use_asan=yes + scons tools=yes target=debug use_asan=yes use_ubsan=yes + scons tools=no target=release debug_symbols=full use_ubsan=yes use_asan=yes + ls -l bin/ # Download and test project to check leaks and invalid memory usage - name: Importing and running project project diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml index bfb1aa49a3d..6168dbb4201 100644 --- a/.github/workflows/macos_builds.yml +++ b/.github/workflows/macos_builds.yml @@ -1,9 +1,10 @@ name: 🍎 macOS Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: GODOT_BASE_BRANCH: 3.2 + SCONSFLAGS: platform=osx verbose=yes warnings=all werror=yes --jobs=2 SCONS_CACHE_LIMIT: 4096 jobs: @@ -49,7 +50,14 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=osx tools=yes target=release_debug + scons tools=yes target=release_debug + ls -l bin/ + + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.job }} + path: bin/* + retention-days: 14 macos-template: runs-on: "macos-latest" @@ -91,4 +99,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 debug_symbols=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 ab581f31a3e..3fa759bb03c 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -9,9 +9,15 @@ jobs: - name: Checkout 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 + - name: Install dependencies run: | - sudo apt-get update -qq sudo apt-get install -qq dos2unix recode clang-format sudo pip3 install black==20.8b1 pygments diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml index 555f954bd68..4cc8d4cee2d 100644 --- a/.github/workflows/windows_builds.yml +++ b/.github/workflows/windows_builds.yml @@ -1,10 +1,11 @@ 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: 3.2 + SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes --jobs=2 SCONS_CACHE_MSVC_CONFIG: true SCONS_CACHE_LIMIT: 4096 @@ -54,16 +55,14 @@ jobs: env: SCONS_CACHE: /.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=windows tools=yes target=release_debug + scons tools=yes target=release_debug + ls -l bin/ -# 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" @@ -106,13 +105,11 @@ jobs: env: SCONS_CACHE: /.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=windows target=release tools=no + scons target=release tools=no debug_symbols=no + ls -l bin/ -# 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 + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.job }} + path: bin/* + retention-days: 14