blob: 52033c36d2bf8e1566f835329511db8953126349 [file] [log] [blame]
name: 'Cache for all OSes'
description: 'Needs to be called before any call to ext/.cmd|sh or cmake'
inputs:
use-rust:
description: 'Whether rust is used'
default: false
extra-key:
description: 'Extra cache key to use in the cache name. Useful when several caches are used in one workflow.'
default: ''
outputs:
ext-cache-hit:
value: ${{ steps.cache-ext.outputs.cache-hit }}
runs:
using: "composite"
steps:
- name: Find workflow path
env:
WORKFLOW_REF: ${{ github.workflow_ref }}
id: workflow-info
run: |
# Remove repository path.
END=(${WORKFLOW_REF/*.github/.github})
# Remove branch reference starting with @.
MIDDLE=(${END/%@*/})
echo "Current workflow path is: ${MIDDLE}"
echo "path=${MIDDLE}" >> "$GITHUB_OUTPUT"
shell: bash
- name: Generate cargo cache key
if: ${{ inputs.use-rust == 'true' }}
id: cargo-key
run: |
echo "key=cargo-registry-${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ inputs.extra-key }}-${{ hashFiles('.github/action/**', steps.workflow-info.outputs.path, 'CMakeLists.txt', 'cmake/Modules/Findrav1e.cmake', 'cmake/Modules/LocalRav1e.cmake', 'ext/rav1e.cmd') }}" >> "$GITHUB_OUTPUT"
shell: bash
- name: Cache all of cargo
if: ${{ inputs.use-rust == 'true' }}
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
continue-on-error: true
with:
path: ~/.cargo
key: ${{ steps.cargo-key.outputs.key }}-${{ github.run_id }}
restore-keys: ${{ steps.cargo-key.outputs.key }}
- name: Cache external dependencies in ext
id: cache-ext
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ext
key: ext-${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ inputs.extra-key }}-${{ hashFiles('.github/action/**', steps.workflow-info.outputs.path, 'ext/*.cmd', 'ext/*.sh') }}
- name: Cache external dependencies in build/_deps
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: build/_deps
key: deps-${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ inputs.extra-key }}-${{ hashFiles('.github/action/**', steps.workflow-info.outputs.path, 'CMakeLists.txt', 'cmake/Modules/*') }}