deb6025781
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.
35 lines
1.7 KiB
YAML
35 lines
1.7 KiB
YAML
name: Setup Godot build cache
|
|
description: Setup Godot build cache.
|
|
inputs:
|
|
cache-name:
|
|
description: The cache base name (job name by default).
|
|
default: "${{github.job}}"
|
|
scons-cache:
|
|
description: The scons cache path.
|
|
default: "${{github.workspace}}/.scons-cache/"
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
# Upload cache on completion and check it out now
|
|
- name: Load .scons_cache directory
|
|
uses: actions/cache@v3
|
|
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}}
|