parameters:
  cache-version:
    type: string
  cache-name:
    type: string
  script-name:
    type: string
  script-arguments:
    type: string
    default: ""
  path:
    type: string
    default: .

steps:
  # Always restore root dependencies cache
  - restore-cache:
      version: << parameters.cache-version >>
      cache-name: dependencies
  - restore-cache:
      version: << parameters.cache-version >>
      cache-name: << parameters.cache-name >>
      lockfile-parent-path: << parameters.path >>
  - run:
      name: Running '<< parameters.script-name >>' yarn script
      command: yarn --cwd << parameters.path >> << parameters.script-name >> << parameters.script-arguments >>
