name: checks
on:
  - push
  - pull_request

env:
  GOPATH: /go_path
  GOCACHE: /go_cache

jobs:
  lint:
    name: check and test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version: '>=1.20.1'
      - uses: https://gitea.com/actions/go-hashfiles@v0.0.1
        id: hash-go
        with:
          patterns: |
            go.mod
            go.sum
      - name: cache go
        id: cache-go
        uses: https://github.com/actions/cache@v3
        with:
          path: |
            /go_path
            /go_cache
          key: go_path-${{ steps.hash-go.outputs.hash }}
      - name: vet checks
        run: make vet
      - name: build
        run: make build
      - name: test
        run: make test
      - name: dockerfile lint check
        uses: https://github.com/hadolint/hadolint-action@v3.1.0
        with:
          dockerfile: Dockerfile