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@v4 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}}