mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
CI: Backport GitHub Actions setup from master
Removes AppVeyor and all Travis jobs but the iOS one, which hasn't been ported to GitHub Actions yet (should be done soon). Backports new style scripts from `master` branch too to do the same checks.
This commit is contained in:
72
.github/workflows/android_builds.yml
vendored
Normal file
72
.github/workflows/android_builds.yml
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
name: Android Builds
|
||||
on: [push, pull_request]
|
||||
|
||||
# Global Cache Settings
|
||||
env:
|
||||
GODOT_BASE_BRANCH: 3.2
|
||||
SCONS_CACHE_LIMIT: 4096
|
||||
|
||||
jobs:
|
||||
android-template:
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
name: Template (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 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
|
||||
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
|
||||
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: ${{github.workspace}}/.scons_cache/
|
||||
run: |
|
||||
scons -j2 verbose=yes warnings=all werror=yes platform=android target=release tools=no
|
||||
76
.github/workflows/javascript_builds.yml
vendored
Normal file
76
.github/workflows/javascript_builds.yml
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
name: JavaScript Builds
|
||||
on: [push, pull_request]
|
||||
|
||||
# Global Cache Settings
|
||||
env:
|
||||
GODOT_BASE_BRANCH: 3.2
|
||||
SCONS_CACHE_LIMIT: 4096
|
||||
EM_VERSION: latest
|
||||
EM_CACHE_FOLDER: 'emsdk-cache'
|
||||
|
||||
jobs:
|
||||
javascript-template:
|
||||
runs-on: "ubuntu-20.04"
|
||||
name: Template (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
|
||||
|
||||
# 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
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{env.EM_CACHE_FOLDER}}
|
||||
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
|
||||
uses: mymindstorm/setup-emsdk@v6
|
||||
with:
|
||||
version: ${{env.EM_VERSION}}
|
||||
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
||||
|
||||
- name: Verify Emscripten setup
|
||||
run: |
|
||||
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
|
||||
117
.github/workflows/linux_builds.yml
vendored
Normal file
117
.github/workflows/linux_builds.yml
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
name: Linux Builds
|
||||
on: [push, pull_request]
|
||||
|
||||
# Global Cache Settings
|
||||
env:
|
||||
GODOT_BASE_BRANCH: 3.2
|
||||
SCONS_CACHE_LIMIT: 4096
|
||||
|
||||
jobs:
|
||||
linux-editor:
|
||||
runs-on: "ubuntu-20.04"
|
||||
name: Editor 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
|
||||
|
||||
# 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 -j2 verbose=yes warnings=all werror=yes platform=x11 tools=yes target=release_debug module_mono_enabled=yes mono_glue=no
|
||||
|
||||
linux-template:
|
||||
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 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-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
|
||||
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: ${{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
|
||||
94
.github/workflows/macos_builds.yml
vendored
Normal file
94
.github/workflows/macos_builds.yml
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
name: MacOS Builds
|
||||
on: [push, pull_request]
|
||||
|
||||
# Global Cache Settings
|
||||
env:
|
||||
GODOT_BASE_BRANCH: 3.2
|
||||
SCONS_CACHE_LIMIT: 4096
|
||||
|
||||
jobs:
|
||||
macos-editor:
|
||||
runs-on: "macos-latest"
|
||||
|
||||
name: Editor (target=release_debug, tools=yes)
|
||||
|
||||
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
|
||||
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=osx tools=yes target=release_debug
|
||||
|
||||
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}}
|
||||
|
||||
# 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: ${{github.workspace}}/.scons_cache/
|
||||
run: |
|
||||
scons -j2 verbose=yes warnings=all werror=yes platform=osx target=release tools=no
|
||||
32
.github/workflows/static_checks.yml
vendored
Normal file
32
.github/workflows/static_checks.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Static Checks
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
static-checks:
|
||||
name: Static Checks (clang-format, black format, file format, documentation checks)
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -qq dos2unix recode clang-format
|
||||
sudo pip3 install black pygments
|
||||
|
||||
- name: File formatting checks (file_format.sh)
|
||||
run: |
|
||||
bash ./misc/scripts/file_format.sh
|
||||
|
||||
- name: Style checks via clang-format (clang_format.sh)
|
||||
run: |
|
||||
bash ./misc/scripts/clang_format.sh
|
||||
|
||||
- name: Python style checks via black (black_format.sh)
|
||||
run: |
|
||||
bash ./misc/scripts/black_format.sh
|
||||
|
||||
- name: Documentation checks
|
||||
run: |
|
||||
doc/tools/makerst.py --dry-run doc/classes modules
|
||||
@@ -1,52 +1,45 @@
|
||||
# Engine build CI
|
||||
name: Godot CI
|
||||
|
||||
on:
|
||||
# will build EVERY pull request
|
||||
pull_request:
|
||||
|
||||
# will only build explicit branches
|
||||
push:
|
||||
branches: [ master, 3.2, 3.1, 3.0 ]
|
||||
name: Windows Builds
|
||||
on: [push, pull_request]
|
||||
|
||||
# Global Cache Settings
|
||||
# SCONS_CACHE for windows must be set in the build environment
|
||||
env:
|
||||
GODOT_BASE_BRANCH: 3.2
|
||||
SCONS_CACHE_MSVC_CONFIG: true
|
||||
SCONS_CACHE_LIMIT: 8192
|
||||
SCONS_CACHE_LIMIT: 4096
|
||||
|
||||
jobs:
|
||||
windows-editor:
|
||||
# Windows 10 with latest image
|
||||
runs-on: "windows-latest"
|
||||
|
||||
# Windows Editor - checkout with the plugin
|
||||
name: Windows Editor (target=release_debug, tools=yes)
|
||||
name: Editor (target=release_debug, tools=yes)
|
||||
|
||||
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 properly tested with a fresh cache.
|
||||
# Linux with this will work reliably, so not as bad to edit for Linux.
|
||||
# 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: ${{runner.os}}-editor-${{github.sha}}
|
||||
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||
restore-keys: |
|
||||
${{runner.os}}-editor-${{github.sha}}
|
||||
${{runner.os}}-editor
|
||||
${{runner.os}}
|
||||
${{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'
|
||||
python-version: '3.x'
|
||||
# Optional - x64 or x86 architecture, defaults to x64
|
||||
architecture: '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
|
||||
@@ -72,36 +65,34 @@ jobs:
|
||||
# name: windows-editor (x64)
|
||||
# path: bin/godot.windows.opt.tools.64.exe
|
||||
|
||||
|
||||
windows-template:
|
||||
runs-on: "windows-latest"
|
||||
name: Windows Template (target=release, tools=no)
|
||||
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 properly tested with a fresh cache.
|
||||
# Linux with this will work reliably, so not as bad to edit for Linux.
|
||||
# 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: ${{runner.os}}-template-${{github.sha}}
|
||||
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||
restore-keys: |
|
||||
${{runner.os}}-template-${{github.sha}}
|
||||
${{runner.os}}-template
|
||||
${{runner.os}}
|
||||
${{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)
|
||||
# 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'
|
||||
python-version: '3.x'
|
||||
# Optional - x64 or x86 architecture, defaults to x64
|
||||
architecture: 'x64'
|
||||
architecture: 'x64'
|
||||
|
||||
# You can test your matrix by printing the current Python version
|
||||
- name: Configuring Python packages
|
||||
@@ -110,6 +101,7 @@ jobs:
|
||||
python -m pip install scons pywin32
|
||||
python --version
|
||||
scons --version
|
||||
|
||||
- name: Compilation
|
||||
env:
|
||||
SCONS_CACHE: /.scons_cache/
|
||||
Reference in New Issue
Block a user