summaryrefslogtreecommitdiffstats
path: root/.github/actions
diff options
context:
space:
mode:
Diffstat (limited to '.github/actions')
-rw-r--r--.github/actions/download-artifact/action.yml18
-rw-r--r--.github/actions/godot-api-dump/action.yml24
-rw-r--r--.github/actions/godot-cache/action.yml13
-rw-r--r--.github/actions/godot-converter-test/action.yml18
-rw-r--r--.github/actions/godot-project-test/action.yml37
5 files changed, 110 insertions, 0 deletions
diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml
new file mode 100644
index 0000000000..58c2aa9060
--- /dev/null
+++ b/.github/actions/download-artifact/action.yml
@@ -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 }}
diff --git a/.github/actions/godot-api-dump/action.yml b/.github/actions/godot-api-dump/action.yml
new file mode 100644
index 0000000000..47b675ae99
--- /dev/null
+++ b/.github/actions/godot-api-dump/action.yml
@@ -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/*'
+
diff --git a/.github/actions/godot-cache/action.yml b/.github/actions/godot-cache/action.yml
index 2d7afc8514..09ad2099cc 100644
--- a/.github/actions/godot-cache/action.yml
+++ b/.github/actions/godot-cache/action.yml
@@ -16,7 +16,20 @@ runs:
with:
path: ${{inputs.scons-cache}}
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
+
+ # We try to match an existing cache to restore from it. Each potential key is checked against
+ # all existing caches as a prefix. E.g. 'linux-template-minimal' would match any cache that
+ # starts with "linux-template-minimal", such as "linux-template-minimal-master-refs/heads/master-6588a4a29af1621086feac0117d5d4d37af957fd".
+ #
+ # We check these prefixes in this order:
+ #
+ # 1. The exact match, including the base branch, the commit reference, and the SHA hash of the commit.
+ # 2. A partial match for the same base branch and the same commit reference.
+ # 3. A partial match for the same base branch and the base branch commit reference.
+ # 4. A partial match for the same base branch only (not ideal, matches any PR with the same base branch).
+
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}}-refs/heads/${{env.GODOT_BASE_BRANCH}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}
diff --git a/.github/actions/godot-converter-test/action.yml b/.github/actions/godot-converter-test/action.yml
new file mode 100644
index 0000000000..919a76e693
--- /dev/null
+++ b/.github/actions/godot-converter-test/action.yml
@@ -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
diff --git a/.github/actions/godot-project-test/action.yml b/.github/actions/godot-project-test/action.yml
new file mode 100644
index 0000000000..fd8c024a37
--- /dev/null
+++ b/.github/actions/godot-project-test/action.yml
@@ -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