From 67b2f3ed259035e8368806271537c57e0c9ac356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 19 Apr 2021 14:26:54 +0200 Subject: [PATCH] CI: Backport GitHub Actions from 3.x branch Ensures that we have a configuration that is currently usable. Some changes for the `3.2` branch as it's unmaintained: - No cache - No artifacts upload - Uses clang-format 10 - No JavaScript linting --- .github/CODEOWNERS | 197 +++++++++++++++++++----- .github/workflows/android_builds.yml | 49 +++--- .github/workflows/ios_builds.yml | 22 +-- .github/workflows/javascript_builds.yml | 25 +-- .github/workflows/linux_builds.yml | 49 ++---- .github/workflows/macos_builds.yml | 39 +---- .github/workflows/server_builds.yml | 88 +++++++++++ .github/workflows/static_checks.yml | 14 +- .github/workflows/windows_builds.yml | 61 +------- 9 files changed, 313 insertions(+), 231 deletions(-) create mode 100644 .github/workflows/server_builds.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3bbe47af2a..6f656a334f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,48 +2,173 @@ # Each line is a file pattern followed by one or more owners. # Owners can be @users, @org/teams or emails -/doc/ @godotengine/documentation -doc_classes/* @godotengine/documentation +# Buildsystem -# Rendering -/drivers/gl_context/ @reduz -/drivers/gles2/ @reduz -/drivers/gles3/ @reduz +.* @godotengine/buildsystem +.github/ @godotengine/buildsystem +*.py @godotengine/buildsystem +SConstruct @godotengine/buildsystem +SCsub @godotengine/buildsystem -# Audio -/drivers/alsa/ @marcelofg55 -/drivers/alsamidi/ @marcelofg55 -/drivers/coreaudio/ @marcelofg55 -/drivers/coremidi/ @marcelofg55 -/drivers/pulseaudio/ @marcelofg55 -/drivers/wasapi/ @marcelofg55 -/drivers/winmidi/ @marcelofg55 -/drivers/xaudio2/ @marcelofg55 +# Core -/drivers/unix/ @hpvb -/drivers/windows/ @hpvb +/core/ @godotengine/core +/core/crypto/ @godotengine/network +/core/input*.* @godotengine/input -/editor/icons/ @djrm +# Doc -/misc/ @akien-mga +/doc/ @godotengine/documentation +doc_classes/* @godotengine/documentation -/modules/bullet/ @AndreaCatania -/modules/csg/ @BastiaanOlij -/modules/enet/ @godotengine/network -/modules/gdnative/*arvr/ @BastiaanOlij -/modules/gdscript/ @vnen @bojidar-bg -/modules/mbedtls/ @godotengine/network -/modules/mobile_vr/ @BastiaanOlij -/modules/mono/ @neikeq -/modules/opensimplex/ @JFonS -/modules/regex/ @LeeZH -/modules/upnp/ @godotengine/network -/modules/websocket/ @godotengine/network +# Drivers -/platform/javascript/ @eska014 -/platform/uwp/ @vnen +## Audio +/drivers/alsa/ @godotengine/audio +/drivers/alsamidi/ @godotengine/audio +/drivers/coreaudio/ @godotengine/audio +/drivers/coremidi/ @godotengine/audio +/drivers/pulseaudio/ @godotengine/audio +/drivers/wasapi/ @godotengine/audio +/drivers/winmidi/ @godotengine/audio +/drivers/xaudio2/ @godotengine/audio -/server/physics*/ @reduz @AndreaCatania -/server/visual*/ @reduz +## Rendering +/drivers/dummy/ @godotengine/rendering +/drivers/gl_context/ @godotengine/rendering +/drivers/gles2/ @godotengine/rendering +/drivers/gles3/ @godotengine/rendering +/drivers/gles_common/ @godotengine/rendering -/thirdparty/ @akien-mga +## OS +/drivers/unix/ @godotengine/_platforms +/drivers/windows/ @godotengine/windows + +## Misc +/drivers/png/ @godotengine/import + +# Editor + +/editor/*debugger* @godotengine/debugger +/editor/icons/ @godotengine/usability +/editor/import/ @godotengine/import +/editor/plugins/*2d_*.* @godotengine/2d-editor +/editor/plugins/script_*.* @godotengine/script-editor +/editor/plugins/*shader*.* @godotengine/shaders +/editor/code_editor.* @godotengine/script-editor +/editor/*dock*.* @godotengine/docks + +# Main + +/main/ @godotengine/core +/main/tests/ @godotengine/tests + +# Misc + +/misc/ @godotengine/buildsystem + +# Modules + +## Audio (+ video) +/modules/minimp3/ @godotengine/audio +/modules/ogg/ @godotengine/audio +/modules/opus/ @godotengine/audio +/modules/stb_vorbis/ @godotengine/audio +/modules/theora/ @godotengine/audio +/modules/vorbis/ @godotengine/audio +/modules/webm/ @godotengine/audio + +## Import +/modules/basis_universal/ @godotengine/import +/modules/bmp/ @godotengine/import +/modules/cvtt/ @godotengine/import +/modules/dds/ @godotengine/import +/modules/etc/ @godotengine/import +/modules/fbx/ @godotengine/import +/modules/gltf/ @godotengine/import +/modules/hdr/ @godotengine/import +/modules/jpg/ @godotengine/import +/modules/pvr/ @godotengine/import +/modules/squish/ @godotengine/import +/modules/svg/ @godotengine/import +/modules/tga/ @godotengine/import +/modules/tinyexr/ @godotengine/import +/modules/webp/ @godotengine/import + +## Network +/modules/enet/ @godotengine/network +/modules/mbedtls/ @godotengine/network +/modules/upnp/ @godotengine/network +/modules/webrtc/ @godotengine/network +/modules/websocket/ @godotengine/network + +## Rendering +/modules/denoise/ @godotengine/rendering +/modules/glslang/ @godotengine/rendering +/modules/lightmapper_cpu/ @godotengine/rendering +/modules/meshoptimizer/ @godotengine/rendering +/modules/raycast/ @godotengine/rendering +/modules/vhacd/ @godotengine/rendering +/modules/xatlas_unwrap/ @godotengine/rendering + +## Scripting +/modules/gdnative/ @godotengine/gdnative +/modules/gdscript/ @godotengine/gdscript +/modules/jsonrpc/ @godotengine/gdscript +/modules/mono/ @godotengine/mono +/modules/visual_script/ @godotengine/visualscript + +## Text +/modules/freetype/ @godotengine/buildsystem +/modules/gdnative/text/ @godotengine/gui-nodes +/modules/text_server_adv/ @godotengine/gui-nodes +/modules/text_server_fb/ @godotengine/gui-nodes + +## XR +/modules/camera/ @godotengine/xr +/modules/gdnative/arvr/ @godotengine/xr +/modules/mobile_vr/ @godotengine/xr +/modules/webxr/ @godotengine/xr + +## Misc +/modules/bullet/ @godotengine/physics +/modules/csg/ @godotengine/3d-nodes +/modules/gridmap/ @godotengine/3d-nodes +/modules/opensimplex/ @godotengine/3d-nodes +/modules/recast/ @godotengine/navigation +/modules/regex/ @godotengine/core + +# Platform + +/platform/android/ @godotengine/android +/platform/iphone/ @godotengine/ios +/platform/javascript/ @godotengine/html5 +/platform/x11/ @godotengine/linux-bsd +/platform/osx/ @godotengine/macos +/platform/uwp/ @godotengine/uwp +/platform/windows/ @godotengine/windows + +# Scene + +/scene/2d/ @godotengine/2d-nodes +/scene/3d/ @godotengine/3d-nodes +/scene/animation/ @godotengine/animation +/scene/audio/ @godotengine/audio +/scene/debugger/ @godotengine/debugger +/scene/gui/ @godotengine/gui-nodes +/scene/main/ @godotengine/core +/scene/resources/default_theme/ @godotengine/gui-nodes +/scene/resources/font.* @godotengine/gui-nodes +/scene/resources/visual_shader*.* @godotengine/shaders + +# Servers + +/servers/arvr* @godotengine/xr +/servers/audio* @godotengine/audio +/servers/camera* @godotengine/xr +/servers/physics* @godotengine/physics +/servers/visual* @godotengine/rendering + +# Thirdparty + +/thirdparty/ @godotengine/buildsystem diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml index 21ae05518b..944b93bbb9 100644 --- a/.github/workflows/android_builds.yml +++ b/.github/workflows/android_builds.yml @@ -1,10 +1,10 @@ name: 🤖 Android Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 + ANDROID_NDK_VERSION: 21.1.6352462 jobs: android-template: @@ -18,35 +18,18 @@ 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 - # Install all packages (except scons) - - name: Configure dependencies - run: | - sudo apt-get install openjdk-8-jdk - echo "::set-env name=JAVA_HOME::usr/lib/jvm/java-8-openjdk-amd64" - - - name: Install Android SDK and NDK - run: | - echo "::set-env name=PATH::/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:${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" - misc/ci/android-tools-linux.sh - source ~/.bashrc - - # Upload cache on completion and check it out now - - name: Load .scons_cache directory - id: android-template-cache - uses: actions/cache@v2 + - name: Set up Java 8 + uses: actions/setup-java@v1 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}} + java-version: 8 + + - name: Install Android NDK r21 + run: | + sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}' # Use python 3.x release (works cross platform) - name: Set up Python 3.x @@ -57,7 +40,6 @@ jobs: # Optional - x64 or x86 architecture, defaults to x64 architecture: 'x64' - # You can test your matrix by printing the current Python version - name: Configuring Python packages run: | python -c "import sys; print(sys.version)" @@ -67,6 +49,11 @@ jobs: - name: Compilation env: - SCONS_CACHE: ${{github.workspace}}/.scons_cache/ + ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/${{env.ANDROID_NDK_VERSION}}/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=android target=release tools=no + scons target=release tools=no android_arch=armv7 + scons target=release tools=no android_arch=arm64v8 + cd platform/android/java + ./gradlew generateGodotTemplates + cd ../../.. + ls -l bin/ diff --git a/.github/workflows/ios_builds.yml b/.github/workflows/ios_builds.yml index a06c013a30..52418b4c52 100644 --- a/.github/workflows/ios_builds.yml +++ b/.github/workflows/ios_builds.yml @@ -1,10 +1,9 @@ name: 🍏 iOS Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=iphone verbose=yes warnings=all werror=no debug_symbols=no --jobs=2 jobs: ios-template: @@ -14,18 +13,6 @@ jobs: steps: - uses: actions/checkout@v2 - # Upload cache on completion and check it out now - - name: Load .scons_cache directory - id: ios-template-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) - name: Set up Python 3.x uses: actions/setup-python@v2 @@ -44,7 +31,6 @@ jobs: scons --version - name: Compilation - env: - SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=no platform=iphone target=release tools=no + scons target=release tools=no + ls -l bin/ diff --git a/.github/workflows/javascript_builds.yml b/.github/workflows/javascript_builds.yml index 0805730c88..df45aaef8f 100644 --- a/.github/workflows/javascript_builds.yml +++ b/.github/workflows/javascript_builds.yml @@ -1,10 +1,9 @@ name: 🌐 JavaScript Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=javascript verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 EM_VERSION: 1.39.20 EM_CACHE_FOLDER: 'emsdk-cache' @@ -19,21 +18,10 @@ 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 - # Upload cache on completion and check it out now - - name: Load .scons_cache directory - id: javascript-template-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}} - # Additional cache for Emscripten generated system libraries - name: Load Emscripten cache id: javascript-template-emscripten-cache @@ -60,7 +48,7 @@ jobs: scons --version - name: Set up Emscripten latest - uses: mymindstorm/setup-emsdk@v6 + uses: mymindstorm/setup-emsdk@v7 with: version: ${{env.EM_VERSION}} actions-cache-folder: ${{env.EM_CACHE_FOLDER}} @@ -70,7 +58,6 @@ jobs: emcc -v - name: Compilation - 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/ diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml index 5d8942f262..73747bb9b1 100644 --- a/.github/workflows/linux_builds.yml +++ b/.github/workflows/linux_builds.yml @@ -1,13 +1,12 @@ name: 🐧 Linux Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=linuxbsd verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 jobs: - linux-editor: + linux-editor-mono: runs-on: "ubuntu-20.04" name: Editor w/ Mono (target=release_debug, tools=yes) @@ -17,27 +16,16 @@ 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 # Install all packages (except scons) - name: Configure dependencies run: | - sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \ + sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev xvfb \ 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 @@ -57,12 +45,13 @@ jobs: # 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 -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 + xvfb-run ./bin/godot.x11.opt.tools.64.mono --generate-mono-glue modules/mono/glue || true + scons tools=yes target=release_debug module_mono_enabled=yes mono_glue=yes + ls -l bin/ - linux-template: + linux-template-mono: runs-on: "ubuntu-20.04" name: Template w/ Mono (target=release, tools=no) @@ -72,6 +61,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 @@ -81,18 +71,6 @@ jobs: 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-template-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) - name: Set up Python 3.x uses: actions/setup-python@v2 @@ -111,7 +89,6 @@ jobs: scons --version - name: Compilation - 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 + ls -l bin/ diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml index bfb1aa49a3..395867c830 100644 --- a/.github/workflows/macos_builds.yml +++ b/.github/workflows/macos_builds.yml @@ -1,10 +1,9 @@ name: 🍎 macOS Builds on: [push, pull_request] -# Global Cache Settings +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=osx verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 jobs: macos-editor: @@ -15,18 +14,6 @@ jobs: steps: - uses: actions/checkout@v2 - # Upload cache on completion and check it out now - - name: Load .scons_cache directory - id: macos-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 @@ -46,10 +33,9 @@ jobs: # 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 -j2 verbose=yes warnings=all werror=yes platform=osx tools=yes target=release_debug + scons tools=yes target=release_debug + ls -l bin/ macos-template: runs-on: "macos-latest" @@ -58,18 +44,6 @@ jobs: steps: - uses: actions/checkout@v2 - # Upload cache on completion and check it out now - - name: Load .scons_cache directory - id: macos-template-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) - name: Set up Python 3.x uses: actions/setup-python@v2 @@ -88,7 +62,6 @@ jobs: scons --version - name: Compilation - 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/ diff --git a/.github/workflows/server_builds.yml b/.github/workflows/server_builds.yml new file mode 100644 index 0000000000..72df06c0f0 --- /dev/null +++ b/.github/workflows/server_builds.yml @@ -0,0 +1,88 @@ +name: ☁ Server Builds +on: [push, pull_request] + +# Global Settings +env: + SCONSFLAGS: platform=server verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 + +jobs: + linux-editor: + runs-on: "ubuntu-20.04" + name: Linux Headless w/ Mono (target=release_debug, tools=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 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 + + # 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 + run: | + scons -j2 verbose=yes warnings=all werror=yes platform=server tools=yes target=release_debug module_mono_enabled=yes mono_glue=no + + linux-server: + runs-on: "ubuntu-20.04" + name: Linux Server w/ Mono (target=release, tools=no) + + 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 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 + + # Use python 3.x release (works cross platform) + - 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' + + # You can test your matrix by printing the current Python version + - name: Configuring Python packages + run: | + python -c "import sys; print(sys.version)" + python -m pip install scons + python --version + scons --version + + - name: Compilation + run: | + scons -j2 target=release tools=no module_mono_enabled=yes mono_glue=no diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml index ce7ad101fc..ee0453c326 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -9,11 +9,19 @@ 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 pygments + sudo apt-get install -qq dos2unix recode clang-format-10 + sudo update-alternatives --remove-all clang-format + sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-10 100 + 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 555f954bd6..d677aec082 100644 --- a/.github/workflows/windows_builds.yml +++ b/.github/workflows/windows_builds.yml @@ -1,12 +1,9 @@ name: 🏁 Windows Builds on: [push, pull_request] -# Global Cache Settings -# SCONS_CACHE for windows must be set in the build environment +# Global Settings env: - GODOT_BASE_BRANCH: 3.2 - SCONS_CACHE_MSVC_CONFIG: true - SCONS_CACHE_LIMIT: 4096 + SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2 jobs: windows-editor: @@ -19,19 +16,6 @@ jobs: steps: - uses: actions/checkout@v2 - # Upload cache on completion and check it out now - # Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache. - - name: Load .scons_cache directory - id: windows-editor-cache - uses: RevoluPowered/cache@v2.1 - with: - path: /.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 @@ -51,19 +35,9 @@ jobs: # 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: /.scons_cache/ run: | - scons -j2 verbose=yes warnings=all werror=yes platform=windows tools=yes target=release_debug - -# 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 + scons tools=yes target=release_debug + ls -l bin/ windows-template: runs-on: "windows-latest" @@ -72,19 +46,6 @@ jobs: steps: - uses: actions/checkout@v2 - # Upload cache on completion and check it out now - # Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache. - - name: Load .scons_cache directory - id: windows-template-cache - uses: RevoluPowered/cache@v2.1 - with: - path: /.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) - name: Set up Python 3.x uses: actions/setup-python@v2 @@ -103,16 +64,6 @@ jobs: scons --version - name: Compilation - 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/