name: CI

on: [push, pull_request]

jobs:
  # The "build" workflow
  lint:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      # Install and run golangci-lint as a separate step, it's much faster this
      # way because this action has caching. It'll get run again in `make lint`
      # below, but it's still much faster in the end than installing
      # golangci-lint manually in the `Run lint` step.
      - uses: golangci/golangci-lint-action@v2
        with:
          args: --timeout 2m

      # Setup Go
      - name: Setup Go
        uses: actions/setup-go@v2
        with:
          go-version: "1.16.3" # The Go version to download (if necessary) and use.

      # Install all the dependencies
      - name: Install dependencies
        run: |
          go version
          go install golang.org/x/lint/golint@latest
          sudo apt update
          sudo apt install -y make

      - name: Run lint
        run: make lint