language: node_js
git:
  depth: false
node_js:
  - 14

services:
  - docker

cache: yarn

if: (type = pull_request) OR (tag IS present)

jobs:
  include:
    - stage: Install dependencies
      if: type = pull_request
      script: yarn --frozen-lockfile
    - stage: Check formatting
      if: type = pull_request
      script: yarn format:check
    - stage: Execute tests
      if: type = pull_request
      script: yarn test
    - stage: Build application
      if: type = pull_request
      script: yarn build:all
    - stage: Build and publish docker image
      if: tag IS present
      script: ./publish-docker-image.sh