name: Cache dependencies inputs: platform: required: true target: required: true bits: required: true outputs: cache-hit: value: ${{ steps.cache.outputs.cache-hit }} runs: using: "composite" steps: - name: Hash submodule revisions id: hash working-directory: addons/godot_xterm/native/thirdparty shell: bash run: | cache_version=1 # Increment this number to invalidate the cache. godot_cpp_rev=$(git ls-tree HEAD godot-cpp --object-only) libuv_rev=$(git ls-tree HEAD libuv --object-only) libtsm_rev=$(git ls-tree HEAD libtsm --object-only) hash_cmd=$([[ $RUNNER_OS == 'Windows' ]] && echo 'sha1sum' || echo 'shasum') hash_of_hashes=$(echo -n "$godot_cpp_rev$libuv_rev$libtsm_rev$cache_version" | $hash_cmd | head -c 40) echo "::set-output name=hash::$hash_of_hashes" - name: Cache submodules uses: actions/cache@v3 id: cache with: path: addons/godot_xterm/native/thirdparty key: thirdparty-${{ inputs.platform }}-${{ inputs.bits }}-${{ inputs.target }}-${{ steps.hash.outputs.hash }}