summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md29
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.yml56
-rw-r--r--.github/workflows/android_builds.yml11
-rw-r--r--.github/workflows/ios_builds.yml5
-rw-r--r--.github/workflows/javascript_builds.yml (renamed from .github/workflows/javascript_builds.disabled)9
-rw-r--r--.github/workflows/linux_builds.yml67
-rw-r--r--.github/workflows/macos_builds.yml6
-rw-r--r--.github/workflows/static_checks.yml4
-rw-r--r--.github/workflows/windows_builds.yml10
9 files changed, 151 insertions, 46 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index bc56cba21b..0000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-name: Bug report
-about: Report a bug in Godot
-title: ''
-labels: ''
-assignees: ''
-
----
-<!-- Please search existing issues for potential duplicates before filing yours:
-https://github.com/godotengine/godot/issues?q=is%3Aissue
--->
-
-**Godot version:**
-<!-- Specify commit hash if using non-official build. -->
-
-
-**OS/device including version:**
-<!-- Specify GPU model, drivers, and the backend (GLES2, GLES3, Vulkan) if graphics-related. -->
-
-
-**Issue description:**
-<!-- What happened, and what was expected. -->
-
-
-**Steps to reproduce:**
-
-
-**Minimal reproduction project:**
-<!-- A small Godot project which reproduces the issue. Drag and drop a zip archive to upload it. -->
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..2c2a963a26
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,56 @@
+name: Bug report
+description: Report a bug in Godot
+body:
+
+- type: markdown
+ attributes:
+ value: |
+ - Read our [CONTRIBUTING.md guide](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md#reporting-bugs) on reporting bugs.
+ - Write a descriptive issue title above.
+ - Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported.
+ - Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html).
+
+- type: input
+ attributes:
+ label: Godot version
+ description: >
+ Specify the Git commit hash if using a development or non-official build.
+ If you use a custom build, please test if your issue is reproducible in official builds too.
+ placeholder: 3.3.stable, 4.0.dev (3041becc6)
+ validations:
+ required: true
+
+- type: input
+ attributes:
+ label: System information
+ description: |
+ Specify the OS version, and when relevant hardware information.
+ For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
+ placeholder: Windows 10, GLES3, Intel HD Graphics 620 (27.20.100.9616)
+ validations:
+ required: true
+
+- type: textarea
+ attributes:
+ label: Issue description
+ description: |
+ Describe your issue briefly. What doesn't work, and how do you expect it to work instead?
+ You can include images or videos with drag and drop, and format code blocks or logs with <code>```</code> tags.
+ validations:
+ required: true
+
+- type: textarea
+ attributes:
+ label: Steps to reproduce
+ description: |
+ List of steps or sample code that reproduces the issue. Having reproducible issues is a prerequisite for contributors to be able to solve them.
+ If you include a minimal reproduction project below, you can detail how to use it here.
+ validations:
+ required: true
+
+- type: textarea
+ attributes:
+ label: Minimal reproduction project
+ description: |
+ A small Godot project which reproduces the issue. Highly recommended to speed up troubleshooting.
+ Drag and drop a ZIP archive to upload it.
diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml
index b24a36beef..5efeba4b5f 100644
--- a/.github/workflows/android_builds.yml
+++ b/.github/workflows/android_builds.yml
@@ -6,7 +6,10 @@ env:
GODOT_BASE_BRANCH: master
SCONSFLAGS: platform=android verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
SCONS_CACHE_LIMIT: 4096
- ANDROID_NDK_VERSION: 21.1.6352462
+
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-android
+ cancel-in-progress: true
jobs:
android-template:
@@ -29,10 +32,6 @@ jobs:
with:
java-version: 8
- - name: Install Android NDK r21
- run: |
- sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}'
-
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
id: android-template-cache
@@ -44,6 +43,7 @@ jobs:
${{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
@@ -64,7 +64,6 @@ 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 target=release tools=no android_arch=armv7
scons target=release tools=no android_arch=arm64v8
diff --git a/.github/workflows/ios_builds.yml b/.github/workflows/ios_builds.yml
index c4da3cb683..69809c6cb6 100644
--- a/.github/workflows/ios_builds.yml
+++ b/.github/workflows/ios_builds.yml
@@ -7,6 +7,10 @@ env:
SCONSFLAGS: platform=iphone verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
SCONS_CACHE_LIMIT: 4096
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-ios
+ cancel-in-progress: true
+
jobs:
ios-template:
runs-on: "macos-latest"
@@ -26,6 +30,7 @@ jobs:
${{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
diff --git a/.github/workflows/javascript_builds.disabled b/.github/workflows/javascript_builds.yml
index 006981f3d4..25a063c3b2 100644
--- a/.github/workflows/javascript_builds.disabled
+++ b/.github/workflows/javascript_builds.yml
@@ -6,9 +6,13 @@ env:
GODOT_BASE_BRANCH: master
SCONSFLAGS: platform=javascript verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2
SCONS_CACHE_LIMIT: 4096
- EM_VERSION: 1.39.20
+ EM_VERSION: 2.0.27
EM_CACHE_FOLDER: 'emsdk-cache'
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-javascript
+ cancel-in-progress: true
+
jobs:
javascript-template:
runs-on: "ubuntu-20.04"
@@ -35,6 +39,7 @@ jobs:
${{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
- name: Load Emscripten cache
@@ -62,7 +67,7 @@ jobs:
scons --version
- name: Set up Emscripten latest
- uses: mymindstorm/setup-emsdk@v6
+ uses: mymindstorm/setup-emsdk@v10
with:
version: ${{env.EM_VERSION}}
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 15a7be9c4f..6fe76345f3 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -7,6 +7,10 @@ env:
SCONSFLAGS: platform=linuxbsd verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
SCONS_CACHE_LIMIT: 4096
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
+ cancel-in-progress: true
+
jobs:
linux-editor:
runs-on: "ubuntu-20.04"
@@ -26,7 +30,7 @@ jobs:
- 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
+ libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
@@ -39,6 +43,7 @@ jobs:
${{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
@@ -70,15 +75,32 @@ jobs:
run: |
./bin/godot.linuxbsd.opt.tools.64 --test
+ # Download, unzip and setup SwiftShader library [4466040]
+ - name: Download SwiftShader
+ run: |
+ wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
+ unzip swiftshader2.zip
+ rm swiftshader2.zip
+ curr="$(pwd)/libvk_swiftshader.so"
+ sed -i "s|PATH_TO_CHANGE|$curr|" vk_swiftshader_icd.json
+
+ # Check class reference
+ - name: Check for class reference updates
+ run: |
+ 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"
+ VK_ICD_FILENAMES=$(pwd)/vk_swiftshader_icd.json DRI_PRIME=0 xvfb-run bin/godot.linuxbsd.opt.tools.64 --doctool . 2>&1 > /dev/null || true
+ git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
+
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: bin/*
retention-days: 14
- linux-editor-sanitizers-mono:
+ linux-editor-sanitizers:
runs-on: "ubuntu-20.04"
- name: Editor w/ Mono and sanitizers (target=debug, tools=yes, tests=yes, use_asan=yes, use_ubsan=yes)
+ name: Editor and sanitizers (target=debug, tools=yes, tests=yes, use_asan=yes, use_ubsan=yes)
steps:
- uses: actions/checkout@v2
@@ -94,7 +116,8 @@ jobs:
- 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
+ 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: Load .scons_cache directory
@@ -107,6 +130,7 @@ jobs:
${{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
@@ -130,13 +154,41 @@ jobs:
env:
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
run: |
- scons tools=yes tests=yes target=debug module_mono_enabled=yes mono_glue=no use_asan=yes use_ubsan=yes
+ scons tools=yes tests=yes target=debug debug_symbols=no use_asan=yes use_ubsan=yes
ls -l bin/
# Execute unit tests for the editor
- name: Unit Tests
run: |
- ./bin/godot.linuxbsd.tools.64s.mono --test
+ ./bin/godot.linuxbsd.tools.64s --test
+
+ # Download, unzip and setup SwiftShader library [4466040]
+ - name: Download SwiftShader
+ run: |
+ wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
+ unzip swiftshader2.zip
+ rm swiftshader2.zip
+ curr="$(pwd)/libvk_swiftshader.so"
+ sed -i "s|PATH_TO_CHANGE|$curr|" vk_swiftshader_icd.json
+
+ # Download and extract zip archive with project, folder is renamed to be able to easy change used project
+ - name: Download test project
+ run: |
+ wget https://github.com/qarmin/RegressionTestProject/archive/4.0.zip
+ unzip 4.0.zip
+ mv "RegressionTestProject-4.0" "test_project"
+
+ # Editor is quite complicated piece of software, so it is easy to introduce bug here
+ - name: Open and close editor
+ run: |
+ VK_ICD_FILENAMES=$(pwd)/vk_swiftshader_icd.json DRI_PRIME=0 xvfb-run bin/godot.linuxbsd.tools.64s --audio-driver Dummy -e -q --path test_project 2>&1 | tee sanitizers_log.txt || true
+ misc/scripts/check_ci_log.py sanitizers_log.txt
+
+ # Run test project
+ - name: Run project
+ run: |
+ VK_ICD_FILENAMES=$(pwd)/vk_swiftshader_icd.json DRI_PRIME=0 xvfb-run bin/godot.linuxbsd.tools.64s 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
+ misc/scripts/check_ci_log.py sanitizers_log.txt
linux-template-mono:
runs-on: "ubuntu-20.04"
@@ -156,7 +208,7 @@ jobs:
- 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
+ libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm
# Upload cache on completion and check it out now
- name: Load .scons_cache directory
@@ -169,6 +221,7 @@ jobs:
${{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
diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml
index a15ab92052..2c9e0fa1a0 100644
--- a/.github/workflows/macos_builds.yml
+++ b/.github/workflows/macos_builds.yml
@@ -7,6 +7,10 @@ env:
SCONSFLAGS: platform=osx verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2 module_text_server_fb_enabled=yes
SCONS_CACHE_LIMIT: 4096
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-macos
+ cancel-in-progress: true
+
jobs:
macos-editor:
runs-on: "macos-latest"
@@ -27,6 +31,7 @@ jobs:
${{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
@@ -82,6 +87,7 @@ jobs:
${{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
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index 30468034ff..fd2e748076 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -1,6 +1,10 @@
name: 📊 Static Checks
on: [push, pull_request]
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-static
+ cancel-in-progress: true
+
jobs:
static-checks:
name: Static Checks (clang-format, black format, file format, documentation checks)
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index b7cc127226..53febd353b 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -9,6 +9,10 @@ env:
SCONS_CACHE_MSVC_CONFIG: true
SCONS_CACHE_LIMIT: 3072
+concurrency:
+ group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows
+ cancel-in-progress: true
+
jobs:
windows-editor:
# Windows 10 with latest image
@@ -32,6 +36,7 @@ jobs:
${{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
@@ -46,7 +51,7 @@ jobs:
- name: Configuring Python packages
run: |
python -c "import sys; print(sys.version)"
- python -m pip install scons pywin32
+ python -m pip install scons
python --version
scons --version
@@ -88,6 +93,7 @@ jobs:
${{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
@@ -102,7 +108,7 @@ jobs:
- name: Configuring Python packages
run: |
python -c "import sys; print(sys.version)"
- python -m pip install scons pywin32
+ python -m pip install scons
python --version
scons --version