parameters:
  cache-version:
    type: string
  after-steps:
    type: steps
  timeout:
    type: string
    default: 10m
  public-url:
    type: string
    default: /
  build-package-script:
    type: string
    default: build

steps:
  - checkout
  - restore-cache:
      version: << parameters.cache-version >>
      cache-name: dependencies
  - run:
      name: Build app
      command: yarn run << parameters.build-package-script >>
      no_output_timeout: << parameters.timeout >>
      environment:
        PUBLIC_URL: << parameters.public-url >>
  - steps: << parameters.after-steps >>
