diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/ISSUE_TEMPLATE/bug_report.md | 29 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/bug_report.yml | 56 | ||||
-rw-r--r-- | .github/workflows/android_builds.yml | 11 | ||||
-rw-r--r-- | .github/workflows/ios_builds.yml | 5 | ||||
-rw-r--r-- | .github/workflows/javascript_builds.yml (renamed from .github/workflows/javascript_builds.disabled) | 9 | ||||
-rw-r--r-- | .github/workflows/linux_builds.yml | 67 | ||||
-rw-r--r-- | .github/workflows/macos_builds.yml | 6 | ||||
-rw-r--r-- | .github/workflows/static_checks.yml | 4 | ||||
-rw-r--r-- | .github/workflows/windows_builds.yml | 10 |
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 |