language: node_js git: depth: false node_js: - 16 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