version: v1.0
name: Build
agent:
  machine:
    type: e1-standard-2
  containers:
    - name: main
      image: semaphoreci/node:12
blocks:
  - name: Dependancies
    task:
      secrets:
        - name: npm
      jobs:
        - name: Dependancies
          commands:
            - cache restore
            - npm ci
            - cache store
      prologue:
        commands:
          - checkout
  - name: Test
    task:
      secrets:
        - name: codacy_lambda_controller_request_body
      jobs:
        - name: Test
          commands:
            - npm run test:coverage
            - bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r coverage/lcov.info
      prologue:
        commands:
          - checkout
          - cache restore
  - name: Lint
    task:
      jobs:
        - name: Lint
          commands:
            - npm run lint
      prologue:
        commands:
          - checkout
          - cache restore
  - name: Deploy
    skip:
      when: "branch != 'master'"
    task:
      secrets:
        - name: npm
      jobs:
        - name: Publish
          commands:
          - npm publish
      prologue:
        commands:
          - checkout
          - cache restore
