---
kind: pipeline
name: linters
steps:
  - name: run shellcheck
    image: koalaman/shellcheck-alpine:v0.7.1
    commands:
      - shellcheck abra
      - shellcheck bin/*.sh

  - name: run flake8
    image: alpine/flake8:3.9.0
    commands:
      - flake8 bin/app-json.py

  - name: run unit tests
    image: decentral1se/docker-dind-bats-kcov
    commands:
      - bats tests

  - name: collect code coverage
    failure: ignore # until we fix this
    image: decentral1se/docker-dind-bats-kcov
    commands:
      - kcov . bats tests || true

  - name: send code coverage report to codecov
    failure: ignore # until we fix this
    image: plugins/codecov
    settings:
      token:
        from_secret: codecov_token
        required: true

  - name: notify rocket chat
    image: plugins/slack
    settings:
      webhook:
        from_secret: rc_builds_url
      username: comradebritney
      channel: "internal.builds"
      template: "{{repo.owner}}/{{repo.name}} build failed: {{build.link}}"
    when:
      status:
        - failure

trigger:
  branch:
    - main