-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI: Extract godot-cpp testing into its own job
This ensures that the godot-cpp job has plenty of resources to run its build and avoid being affected by the main build. Additionally: - Extract test tasks into dedicated actions. - Upload artifacts as early as possible. - Ensure that we check master cache before random cache. (cherry picked from commit deb6025)
- Loading branch information
Showing
10 changed files
with
233 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: Download Godot artifact | ||
description: Download the Godot artifact. | ||
inputs: | ||
name: | ||
description: The artifact name. | ||
default: "${{ github.job }}" | ||
path: | ||
description: The path to download and extract to. | ||
required: true | ||
default: "./" | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Download Godot Artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ inputs.name }} | ||
path: ${{ inputs.path }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Dump Godot API | ||
description: Dump Godot API for GDExtension | ||
inputs: | ||
bin: | ||
description: The path to the Godot executable | ||
required: true | ||
runs: | ||
using: "composite" | ||
steps: | ||
# Dump GDExtension interface and API | ||
- name: Dump GDExtension interface and API for godot-cpp build | ||
shell: sh | ||
run: | | ||
${{ inputs.bin }} --headless --dump-gdextension-interface --dump-extension-api | ||
mkdir godot-api | ||
cp -f gdextension_interface.h godot-api/ | ||
cp -f extension_api.json godot-api/ | ||
- name: Upload API dump | ||
uses: ./.github/actions/upload-artifact | ||
with: | ||
name: 'godot-api-dump' | ||
path: './godot-api/*' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: Test Godot project converter | ||
description: Test the Godot project converter. | ||
inputs: | ||
bin: | ||
description: The path to the Godot executable | ||
required: true | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Test 3-to-4 conversion | ||
shell: sh | ||
run: | | ||
mkdir converter_test | ||
cd converter_test | ||
touch project.godot | ||
../${{ inputs.bin }} --headless --validate-conversion-3to4 | ||
cd .. | ||
rm converter_test -rf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
name: Test Godot project | ||
description: Run the test Godot project. | ||
inputs: | ||
bin: | ||
description: The path to the Godot executable | ||
required: true | ||
runs: | ||
using: "composite" | ||
steps: | ||
# Download and extract zip archive with project, folder is renamed to be able to easy change used project | ||
- name: Download test project | ||
shell: sh | ||
run: | | ||
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip | ||
unzip 4.0.zip | ||
mv "regression-test-project-4.0" "test_project" | ||
# Editor is quite complicated piece of software, so it is easy to introduce bug here. | ||
|
||
- name: Open and close editor (Vulkan) | ||
shell: sh | ||
run: | | ||
xvfb-run ${{ inputs.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true | ||
misc/scripts/check_ci_log.py sanitizers_log.txt | ||
- name: Open and close editor (GLES3) | ||
shell: sh | ||
run: | | ||
DRI_PRIME=0 xvfb-run ${{ inputs.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --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 | ||
shell: sh | ||
run: | | ||
xvfb-run ${{ inputs.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true | ||
misc/scripts/check_ci_log.py sanitizers_log.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: 🪲 Godot CPP | ||
on: | ||
workflow_call: | ||
|
||
# Global Settings | ||
env: | ||
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build. | ||
GODOT_BASE_BRANCH: '4.0' | ||
|
||
concurrency: | ||
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-cpp-tests | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
godot-cpp-tests: | ||
runs-on: "ubuntu-20.04" | ||
name: "Build and test Godot CPP" | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup python and scons | ||
uses: ./.github/actions/godot-deps | ||
|
||
# Checkout godot-cpp | ||
- name: Checkout godot-cpp | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: godotengine/godot-cpp | ||
ref: ${{ env.GODOT_BASE_BRANCH }} | ||
submodules: 'recursive' | ||
path: 'godot-cpp' | ||
|
||
# Download generated API dump | ||
- name: Download GDExtension interface and API dump | ||
uses: ./.github/actions/download-artifact | ||
with: | ||
name: 'godot-api-dump' | ||
path: './godot-api' | ||
|
||
# Extract and override existing files with generated files | ||
- name: Extract GDExtension interface and API dump | ||
run: | | ||
cp -f godot-api/gdextension_interface.h godot-cpp/gdextension/ | ||
cp -f godot-api/extension_api.json godot-cpp/gdextension/ | ||
# TODO: Add caching to the scons build and store it for CI via the godot-cache | ||
# action. | ||
|
||
# Build godot-cpp test extension | ||
- name: Build godot-cpp test extension | ||
run: | | ||
cd godot-cpp/test | ||
scons target=template_debug dev_build=yes | ||
cd ../.. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.