name: 'Cache'
description: 'Cache artifacts like dependencies and build outputs to improve workflow execution time'
author: 'GitHub'
inputs:
  path:
    description: 'A list of files, directories, and wildcard patterns to cache and restore'
    required: true
  key:
    description: 'An explicit key for restoring and saving the cache'
    required: true
  restore-keys:
    description: 'An ordered list of keys to use for restoring stale cache if no cache hit occurred for key. Note `cache-hit` returns false in this case.'
    required: false
  upload-chunk-size:
    description: 'The chunk size used to split up large files during upload, in bytes'
    required: false
  exit-on-cache-miss:
    description: 'Fail the workflow if the cache is not found for the primary key'
    required: false
    default: false
  save-on-any-failure:
    description: 'Save cache (on cache miss) despite of any failure during the workflow run'
    required: false
    default: false
outputs:
  cache-hit:
    description: 'A boolean value to indicate an exact match was found for the primary key'
runs:
  using: 'node16'
  main: 'dist/restore/index.js'
  post: 'dist/save/index.js'
  post-if: (success() || (env.SAVE_CACHE_ON_ANY_FAILURE == 'yes'))
branding:
  icon: 'archive'
  color: 'gray-dark'