name: ci
on:
  - push
  - pull_request
env:
  golang-version: '1.17'
jobs:
  generate:
    runs-on: ubuntu-latest
    name: Generate yaml
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make generate && git diff --exit-code
  jsonnet-lint:
    runs-on: ubuntu-latest
    name: Jsonnet linter
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make jsonnet-lint
  dashboards-lint:
    runs-on: ubuntu-latest
    name: Grafana dashboard linter
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make dashboards-lint
  alerts-lint:
    runs-on: ubuntu-latest
    name: Alerts linter
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make alerts-lint
  fmt:
    runs-on: ubuntu-latest
    name: Jsonnet formatter
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make fmt && git diff --exit-code
  unit-tests:
    runs-on: ubuntu-latest
    name: Unit tests
    steps:
    - uses: actions/checkout@v2
      with:
        persist-credentials: false
    - uses: actions/setup-go@v2
      with:
        go-version: ${{ env.golang-version }}
    - run: make --always-make test
