name: Restore Godot build cache description: Restore 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: - name: Restore SCons cache directory uses: actions/cache/restore@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 }}