[CI] Refactor CI actions, use sub-actions, matrices.
This commit is contained in:
parent
8a211219c7
commit
8773b83773
|
@ -0,0 +1,36 @@
|
||||||
|
name: Build Godot
|
||||||
|
description: Build Godot with the provided options.
|
||||||
|
inputs:
|
||||||
|
target:
|
||||||
|
description: The scons target (debug/release_debug/release).
|
||||||
|
default: "debug"
|
||||||
|
tools:
|
||||||
|
description: If tools are to be built.
|
||||||
|
default: false
|
||||||
|
tests:
|
||||||
|
description: If tests are to be built.
|
||||||
|
default: false
|
||||||
|
platform:
|
||||||
|
description: The Godot platform to build.
|
||||||
|
required: false
|
||||||
|
sconsflags:
|
||||||
|
default: ""
|
||||||
|
scons-cache:
|
||||||
|
description: The scons cache path.
|
||||||
|
default: "${{ github.workspace }}/.scons-cache/"
|
||||||
|
scons-cache-limit:
|
||||||
|
description: The scons cache size limit.
|
||||||
|
default: 4096
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Scons Build
|
||||||
|
shell: sh
|
||||||
|
env:
|
||||||
|
SCONSFLAGS: ${{ inputs.sconsflags }}
|
||||||
|
SCONS_CACHE: ${{ inputs.scons-cache }}
|
||||||
|
SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
|
||||||
|
run: |
|
||||||
|
echo "Building with flags:" ${{ env.SCONSFLAGS }}
|
||||||
|
scons p=${{ inputs.platform }} target=${{ inputs.target }} tools=${{ inputs.tools }} tests=${{ inputs.tests }} --jobs=2 ${{ env.SCONSFLAGS }}
|
||||||
|
ls -l bin/
|
|
@ -0,0 +1,22 @@
|
||||||
|
name: Setup Godot build cache
|
||||||
|
description: Setup Godot build cache.
|
||||||
|
inputs:
|
||||||
|
cache-name:
|
||||||
|
description: The cache base name (job name by default).
|
||||||
|
default: "${{github.job}}"
|
||||||
|
scons-cache:
|
||||||
|
description: The scons cache path.
|
||||||
|
default: "${{github.workspace}}/.scons-cache/"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
# Upload cache on completion and check it out now
|
||||||
|
- name: Load .scons_cache directory
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{inputs.scons-cache}}
|
||||||
|
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}
|
|
@ -0,0 +1,27 @@
|
||||||
|
name: Setup python and scons
|
||||||
|
description: Setup python, install the pip version of scons.
|
||||||
|
inputs:
|
||||||
|
python-version:
|
||||||
|
description: The python version to use.
|
||||||
|
default: "3.x"
|
||||||
|
python-arch:
|
||||||
|
description: The python architecture.
|
||||||
|
default: "x64"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
# 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: ${{ inputs.python-version }}
|
||||||
|
# Optional - x64 or x86 architecture, defaults to x64
|
||||||
|
architecture: ${{ inputs.python-arch }}
|
||||||
|
|
||||||
|
- name: Setup scons
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons
|
||||||
|
scons --version
|
|
@ -0,0 +1,19 @@
|
||||||
|
name: Upload Godot artifact
|
||||||
|
description: Upload the Godot artifact.
|
||||||
|
inputs:
|
||||||
|
name:
|
||||||
|
description: The artifact name.
|
||||||
|
default: "${{ github.job }}"
|
||||||
|
path:
|
||||||
|
description: The path to upload.
|
||||||
|
required: true
|
||||||
|
default: "bin/*"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Upload Godot Artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.name }}
|
||||||
|
path: ${{ inputs.path }}
|
||||||
|
retention-days: 14
|
|
@ -4,8 +4,11 @@ on: [push, pull_request]
|
||||||
# Global Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=android verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-android
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
android-template:
|
android-template:
|
||||||
|
@ -28,48 +31,35 @@ jobs:
|
||||||
with:
|
with:
|
||||||
java-version: 8
|
java-version: 8
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
- name: Load .scons_cache directory
|
uses: ./.github/actions/godot-cache
|
||||||
id: android-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}}
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform)
|
- name: Setup python and scons
|
||||||
- name: Set up Python 3.x
|
uses: ./.github/actions/godot-deps
|
||||||
uses: actions/setup-python@v2
|
|
||||||
|
- name: Compilation (armv7)
|
||||||
|
uses: ./.github/actions/godot-build
|
||||||
with:
|
with:
|
||||||
# Semantic version range syntax or exact version of a Python version
|
sconsflags: ${{ env.SCONSFLAGS }} android_arch=armv7
|
||||||
python-version: '3.x'
|
platform: android
|
||||||
# Optional - x64 or x86 architecture, defaults to x64
|
target: release
|
||||||
architecture: 'x64'
|
tools: false
|
||||||
|
|
||||||
- name: Configuring Python packages
|
- name: Compilation (arm64v8)
|
||||||
run: |
|
uses: ./.github/actions/godot-build
|
||||||
python -c "import sys; print(sys.version)"
|
with:
|
||||||
python -m pip install scons
|
sconsflags: ${{ env.SCONSFLAGS }} android_arch=arm64v8
|
||||||
python --version
|
platform: android
|
||||||
scons --version
|
target: release
|
||||||
|
tools: false
|
||||||
|
|
||||||
- name: Compilation
|
- name: Generate Godot templates
|
||||||
env:
|
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
||||||
run: |
|
run: |
|
||||||
scons target=release tools=no android_arch=armv7
|
|
||||||
scons target=release tools=no android_arch=arm64v8
|
|
||||||
cd platform/android/java
|
cd platform/android/java
|
||||||
./gradlew generateGodotTemplates
|
./gradlew generateGodotTemplates
|
||||||
cd ../../..
|
cd ../../..
|
||||||
ls -l bin/
|
ls -l bin/
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
- name: Upload artifact
|
||||||
with:
|
uses: ./.github/actions/upload-artifact
|
||||||
name: ${{ github.job }}
|
|
||||||
path: bin/*
|
|
||||||
retention-days: 14
|
|
||||||
|
|
|
@ -4,8 +4,11 @@ on: [push, pull_request]
|
||||||
# Global Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=iphone verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-ios
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ios-template:
|
ios-template:
|
||||||
|
@ -15,45 +18,20 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
- name: Load .scons_cache directory
|
uses: ./.github/actions/godot-cache
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform)
|
- name: Setup python and scons
|
||||||
- name: Set up Python 3.x
|
uses: ./.github/actions/godot-deps
|
||||||
uses: actions/setup-python@v2
|
|
||||||
|
- name: Compilation (armv7)
|
||||||
|
uses: ./.github/actions/godot-build
|
||||||
with:
|
with:
|
||||||
# Semantic version range syntax or exact version of a Python version
|
sconsflags: ${{ env.SCONSFLAGS }}
|
||||||
python-version: '3.x'
|
platform: iphone
|
||||||
# Optional - x64 or x86 architecture, defaults to x64
|
target: release
|
||||||
architecture: 'x64'
|
tools: false
|
||||||
|
|
||||||
# You can test your matrix by printing the current Python version
|
- name: Upload artifact
|
||||||
- name: Configuring Python packages
|
uses: ./.github/actions/upload-artifact
|
||||||
run: |
|
|
||||||
python -c "import sys; print(sys.version)"
|
|
||||||
python -m pip install scons
|
|
||||||
python --version
|
|
||||||
scons --version
|
|
||||||
|
|
||||||
- name: Compilation
|
|
||||||
env:
|
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
||||||
run: |
|
|
||||||
scons target=release tools=no
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: ${{ github.job }}
|
|
||||||
path: bin/*
|
|
||||||
retention-days: 14
|
|
||||||
|
|
|
@ -4,10 +4,13 @@ on: [push, pull_request]
|
||||||
# Global Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=javascript verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
EM_VERSION: 2.0.25
|
EM_VERSION: 2.0.25
|
||||||
EM_CACHE_FOLDER: 'emsdk-cache'
|
EM_CACHE_FOLDER: "emsdk-cache"
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-javascript
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
javascript-template:
|
javascript-template:
|
||||||
|
@ -17,26 +20,6 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- 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
|
|
||||||
|
|
||||||
# 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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# Additional cache for Emscripten generated system libraries
|
# Additional cache for Emscripten generated system libraries
|
||||||
- name: Load Emscripten cache
|
- name: Load Emscripten cache
|
||||||
id: javascript-template-emscripten-cache
|
id: javascript-template-emscripten-cache
|
||||||
|
@ -45,23 +28,6 @@ jobs:
|
||||||
path: ${{env.EM_CACHE_FOLDER}}
|
path: ${{env.EM_CACHE_FOLDER}}
|
||||||
key: ${{env.EM_VERSION}}-${{github.job}}
|
key: ${{env.EM_VERSION}}-${{github.job}}
|
||||||
|
|
||||||
# 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: Set up Emscripten latest
|
- name: Set up Emscripten latest
|
||||||
uses: mymindstorm/setup-emsdk@v10
|
uses: mymindstorm/setup-emsdk@v10
|
||||||
with:
|
with:
|
||||||
|
@ -72,15 +38,20 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
emcc -v
|
emcc -v
|
||||||
|
|
||||||
- name: Compilation
|
- name: Setup Godot build cache
|
||||||
env:
|
uses: ./.github/actions/godot-cache
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
continue-on-error: true
|
||||||
run: |
|
|
||||||
scons target=release tools=no use_closure_compiler=yes
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
- name: Setup python and scons
|
||||||
|
uses: ./.github/actions/godot-deps
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
uses: ./.github/actions/godot-build
|
||||||
with:
|
with:
|
||||||
name: ${{ github.job }}
|
sconsflags: ${{ env.SCONSFLAGS }}
|
||||||
path: bin/*
|
platform: javascript
|
||||||
retention-days: 14
|
target: release
|
||||||
|
tools: false
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: ./.github/actions/upload-artifact
|
||||||
|
|
|
@ -4,218 +4,129 @@ on: [push, pull_request]
|
||||||
# Global Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=linuxbsd verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linux-editor-mono:
|
build-linux:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
name: Editor w/ Mono (target=release_debug, tools=yes)
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor w/ Mono (target=release_debug, tools=yes)
|
||||||
|
cache-name: linux-editor-mono
|
||||||
|
target: release_debug
|
||||||
|
tools: true
|
||||||
|
sconsflags: module_mono_enabled=yes mono_glue=no
|
||||||
|
bin: "./bin/godot.x11.opt.tools.64.mono"
|
||||||
|
build-mono: true
|
||||||
|
artifact: true
|
||||||
|
|
||||||
|
- name: Editor and sanitizers (target=debug, tools=yes, use_asan=yes, use_ubsan=yes)
|
||||||
|
cache-name: linux-editor-sanitizers
|
||||||
|
target: debug
|
||||||
|
tools: true
|
||||||
|
sconsflags: use_asan=yes use_ubsan=yes
|
||||||
|
test: true
|
||||||
|
bin: "./bin/godot.x11.tools.64s"
|
||||||
|
build-mono: false
|
||||||
|
# Skip 2GiB artifact speeding up action.
|
||||||
|
artifact: false
|
||||||
|
|
||||||
|
- name: Template w/ Mono (target=release, tools=no)
|
||||||
|
cache-name: linux-template-mono
|
||||||
|
target: release
|
||||||
|
tools: false
|
||||||
|
sconsflags: module_mono_enabled=yes mono_glue=no
|
||||||
|
build-mono: false
|
||||||
|
artifact: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
- name: Linux dependencies
|
||||||
- name: Make apt sources.list use the default Ubuntu repositories
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
sudo rm -f /etc/apt/sources.list.d/*
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
# The actual dependencies
|
||||||
# Install all packages (except scons)
|
|
||||||
- name: Configure dependencies
|
|
||||||
run: |
|
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# 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 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/
|
|
||||||
|
|
||||||
- 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)
|
|
||||||
|
|
||||||
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 \
|
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
|
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
|
||||||
|
libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
- name: Load .scons_cache directory
|
uses: ./.github/actions/godot-cache
|
||||||
id: linux-template-cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
with:
|
||||||
path: ${{github.workspace}}/.scons_cache/
|
cache-name: ${{ matrix.cache-name }}
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform)
|
- name: Setup python and scons
|
||||||
- name: Set up Python 3.x
|
uses: ./.github/actions/godot-deps
|
||||||
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
|
- name: Compilation
|
||||||
env:
|
uses: ./.github/actions/godot-build
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
||||||
run: |
|
|
||||||
scons target=release tools=no module_mono_enabled=yes mono_glue=no
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
with:
|
||||||
name: ${{ github.job }}
|
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
|
||||||
path: bin/*
|
platform: linuxbsd
|
||||||
retention-days: 14
|
target: ${{ matrix.target }}
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
|
|
||||||
linux-editor-sanitizers:
|
# Generate mono glue
|
||||||
runs-on: "ubuntu-20.04"
|
- name: Generate Mono glue code
|
||||||
name: Editor and exported project with sanitizers (target=debug/release, tools=yes/no, use_ubsan=yes, use_asan=yes)
|
if: ${{ matrix.build-mono }}
|
||||||
|
|
||||||
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: |
|
run: |
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --generate-mono-glue modules/mono/glue || true
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
# Install all packages (except scons)
|
# Rebuild with mono
|
||||||
- name: Configure dependencies
|
- name: Compilation (mono_glue=yes)
|
||||||
run: |
|
uses: ./.github/actions/godot-build
|
||||||
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
|
if: ${{ matrix.build-mono }}
|
||||||
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm \
|
|
||||||
xvfb wget2 unzip
|
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
|
||||||
- name: Load .scons_cache directory
|
|
||||||
id: linux-sanitizer-cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
with:
|
||||||
path: ${{github.workspace}}/.scons_cache/
|
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }} mono_glue=yes
|
||||||
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
platform: linuxbsd
|
||||||
restore-keys: |
|
target: ${{ matrix.target }}
|
||||||
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
tools: ${{ matrix.tools }}
|
||||||
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
|
||||||
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform; best to keep self contained in it's own step)
|
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
|
||||||
- name: Set up Python 3.x
|
- name: Download test project
|
||||||
uses: actions/setup-python@v2
|
if: ${{ matrix.test }}
|
||||||
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: |
|
run: |
|
||||||
python -c "import sys; print(sys.version)"
|
wget https://github.com/qarmin/RegressionTestProject/archive/3.x.zip
|
||||||
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 target=debug use_asan=yes use_ubsan=yes
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
# Download and test project to check leaks and invalid memory usage.
|
|
||||||
# CI has no audio device, so use the Dummy audio driver to avoid spurious error messages.
|
|
||||||
- name: Importing and running project project
|
|
||||||
run: |
|
|
||||||
wget2 https://github.com/qarmin/RegressionTestProject/archive/3.x.zip
|
|
||||||
unzip 3.x.zip
|
unzip 3.x.zip
|
||||||
mv "RegressionTestProject-3.x" "test_project"
|
mv "RegressionTestProject-3.x" "test_project"
|
||||||
|
|
||||||
echo "----- Open editor to check for memory leaks -----"
|
# Editor is quite complicated piece of software, so it is easy to introduce bug here
|
||||||
DRI_PRIME=0 xvfb-run bin/godot.x11.tools.64s --audio-driver Dummy -e -q --path test_project 2>&1 | tee sanitizers_log.txt || true
|
- name: Open and close editor
|
||||||
|
if: ${{ matrix.test }}
|
||||||
|
run: |
|
||||||
|
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --audio-driver Dummy -e -q --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||||
|
|
||||||
echo "----- Run and test project -----"
|
# Run test project
|
||||||
DRI_PRIME=0 xvfb-run bin/godot.x11.tools.64s 30 --video-driver GLES3 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
|
- name: Run project
|
||||||
|
if: ${{ matrix.test }}
|
||||||
|
run: |
|
||||||
|
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} 30 --video-driver GLES3 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
|
||||||
misc/scripts/check_ci_log.py sanitizers_log.txt
|
misc/scripts/check_ci_log.py sanitizers_log.txt
|
||||||
|
|
||||||
# Check class reference
|
# Check class reference
|
||||||
- name: Check for class reference updates
|
- name: Check for class reference updates
|
||||||
|
if: ${{ matrix.test }}
|
||||||
run: |
|
run: |
|
||||||
echo "Running --doctool to see if this changes the public API without updating the documentation."
|
echo "Running --doctool to see if this changes the public API without updating the documentation."
|
||||||
echo -e "If a diff is shown, it means that your code/doc changes are incomplete and you should update the class reference with --doctool.\n\n"
|
echo -e "If a diff is shown, it means that your code/doc changes are incomplete and you should update the class reference with --doctool.\n\n"
|
||||||
DRI_PRIME=0 xvfb-run bin/godot.x11.tools.64s --doctool . 2>&1 > /dev/null || true
|
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --doctool . 2>&1 > /dev/null || true
|
||||||
git diff --color --exit-code
|
git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: ./.github/actions/upload-artifact
|
||||||
|
if: ${{ matrix.artifact }}
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.cache-name }}
|
||||||
|
|
|
@ -4,108 +4,52 @@ on: [push, pull_request]
|
||||||
# Global Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=osx verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
macos-editor:
|
build-macos:
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-latest"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor (target=release_debug, tools=yes)
|
||||||
|
cache-name: macos-editor
|
||||||
|
target: release_debug
|
||||||
|
tools: true
|
||||||
|
bin: "./bin/godot.osx.opt.tools.64"
|
||||||
|
|
||||||
name: Editor (target=release_debug, tools=yes)
|
- name: Template (target=release, tools=no)
|
||||||
|
cache-name: macos-template
|
||||||
|
target: release
|
||||||
|
tools: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
- name: Load .scons_cache directory
|
uses: ./.github/actions/godot-cache
|
||||||
id: macos-editor-cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
with:
|
||||||
path: ${{github.workspace}}/.scons_cache/
|
cache-name: ${{ matrix.cache-name }}
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform; best to keep self contained in it's own step)
|
- name: Setup python and scons
|
||||||
- name: Set up Python 3.x
|
uses: ./.github/actions/godot-deps
|
||||||
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 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"
|
|
||||||
name: Template (target=release, tools=no)
|
|
||||||
|
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# 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
|
- name: Compilation
|
||||||
env:
|
uses: ./.github/actions/godot-build
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
||||||
run: |
|
|
||||||
scons target=release tools=no
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
with:
|
||||||
name: ${{ github.job }}
|
sconsflags: ${{ env.SCONSFLAGS }}
|
||||||
path: bin/*
|
platform: osx
|
||||||
retention-days: 14
|
target: ${{ matrix.target }}
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: ./.github/actions/upload-artifact
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.cache-name }}
|
||||||
|
|
|
@ -1,120 +1,61 @@
|
||||||
name: ☁ Server Builds
|
name: ☁ Server Builds
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
# Global Cache Settings
|
# Global Settings
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=server verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no module_mono_enabled=yes mono_glue=no
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-server
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linux-editor:
|
build-server:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
name: Linux Headless w/ Mono (target=release_debug, tools=yes)
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Linux Headless w/ Mono (target=release_debug, tools=yes)
|
||||||
|
cache-name: server-editor-mono
|
||||||
|
target: release_debug
|
||||||
|
tools: true
|
||||||
|
|
||||||
|
- name: Linux Server w/ Mono (target=release, tools=no)
|
||||||
|
cache-name: server-template-mono
|
||||||
|
target: release
|
||||||
|
tools: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
- name: Linux dependencies
|
||||||
- name: Make apt sources.list use the default Ubuntu repositories
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
||||||
|
sudo rm -f /etc/apt/sources.list.d/*
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
# The actual dependencies
|
||||||
# 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 \
|
||||||
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
|
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
|
||||||
|
libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
- name: Load .scons_cache directory
|
uses: ./.github/actions/godot-cache
|
||||||
id: linux-headless-cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
with:
|
||||||
path: ${{github.workspace}}/.scons_cache/
|
cache-name: ${{ matrix.cache-name }}
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
# Use python 3.x release (works cross platform; best to keep self contained in it's own step)
|
- name: Setup python and scons
|
||||||
- name: Set up Python 3.x
|
uses: ./.github/actions/godot-deps
|
||||||
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 -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
|
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
|
||||||
- name: Load .scons_cache directory
|
|
||||||
id: linux-server-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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# 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
|
- name: Compilation
|
||||||
env:
|
uses: ./.github/actions/godot-build
|
||||||
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
with:
|
||||||
run: |
|
sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
|
||||||
scons -j2 target=release tools=no module_mono_enabled=yes mono_glue=no
|
platform: server
|
||||||
|
target: ${{ matrix.target }}
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
|
|
|
@ -5,113 +5,56 @@ on: [push, pull_request]
|
||||||
# SCONS_CACHE for windows must be set in the build environment
|
# SCONS_CACHE for windows must be set in the build environment
|
||||||
env:
|
env:
|
||||||
GODOT_BASE_BRANCH: 3.x
|
GODOT_BASE_BRANCH: 3.x
|
||||||
SCONSFLAGS: platform=windows verbose=yes warnings=all werror=yes debug_symbols=no --jobs=2
|
SCONSFLAGS: verbose=yes warnings=all werror=yes debug_symbols=no
|
||||||
SCONS_CACHE_MSVC_CONFIG: true
|
SCONS_CACHE_MSVC_CONFIG: true
|
||||||
SCONS_CACHE_LIMIT: 4096
|
|
||||||
|
concurrency:
|
||||||
|
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
windows-editor:
|
build-windows:
|
||||||
# Windows 10 with latest image
|
# Windows 10 with latest image
|
||||||
runs-on: "windows-latest"
|
runs-on: "windows-latest"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor (target=release_debug, tools=yes)
|
||||||
|
cache-name: windows-editor
|
||||||
|
target: release_debug
|
||||||
|
tools: true
|
||||||
|
bin: "./bin/godot.windows.opt.tools.64.exe"
|
||||||
|
|
||||||
# Windows Editor - checkout with the plugin
|
- name: Template (target=release, tools=no)
|
||||||
name: Editor (target=release_debug, tools=yes)
|
cache-name: windows-template
|
||||||
|
target: release
|
||||||
|
tools: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
# Upload cache on completion and check it out now
|
- name: Setup Godot build cache
|
||||||
# Editing this is pretty dangerous for Windows since it can break and needs to be properly tested with a fresh cache.
|
uses: ./.github/actions/godot-cache
|
||||||
- name: Load .scons_cache directory
|
with:
|
||||||
id: windows-editor-cache
|
cache-name: ${{ matrix.cache-name }}
|
||||||
uses: actions/cache@v2
|
continue-on-error: true
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# 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: Setup python and scons
|
||||||
- name: Configuring Python packages
|
uses: ./.github/actions/godot-deps
|
||||||
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
|
||||||
- name: Compilation
|
uses: ./.github/actions/godot-build
|
||||||
env:
|
with:
|
||||||
SCONS_CACHE: /.scons_cache/
|
sconsflags: ${{ env.SCONSFLAGS }}
|
||||||
run: |
|
platform: windows
|
||||||
scons tools=yes target=release_debug
|
target: ${{ matrix.target }}
|
||||||
ls -l bin/
|
tools: ${{ matrix.tools }}
|
||||||
|
scons-cache-limit: 3072
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
- name: Upload artifact
|
||||||
with:
|
uses: ./.github/actions/upload-artifact
|
||||||
name: ${{ github.job }}
|
with:
|
||||||
path: bin/*
|
name: ${{ matrix.cache-name }}
|
||||||
retention-days: 14
|
|
||||||
|
|
||||||
windows-template:
|
|
||||||
runs-on: "windows-latest"
|
|
||||||
name: Template (target=release, tools=no)
|
|
||||||
|
|
||||||
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}}
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
# 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
|
|
||||||
env:
|
|
||||||
SCONS_CACHE: /.scons_cache/
|
|
||||||
run: |
|
|
||||||
scons target=release tools=no
|
|
||||||
ls -l bin/
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: ${{ github.job }}
|
|
||||||
path: bin/*
|
|
||||||
retention-days: 14
|
|
||||||
|
|
Loading…
Reference in New Issue