name: build

on:
  push:
    branches:
      - main
  pull_request:
  workflow_dispatch:

jobs:
  build:
    name: Build on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        goVer: ["1.21.x"]

    steps:
      - name: Set up Go ${{ matrix.goVer }}
        uses: actions/setup-go@v1
        with:
          go-version: ${{ matrix.goVer }}
        id: go

      - name: Check out code into the Go module directory
        uses: actions/checkout@v2

      - name: Set Git to handle line endings consistently
        run: git config --global core.autocrlf false

      - name: Format Check
        if: matrix.os != 'windows-latest'
        run: |
          diff -u <(echo -n) <(gofmt -d .)

      - name: Get dependencies
        run: |
          go get -v -t -d ./...
          go get gopkg.in/check.v1

      - name: Build
        run: go build -v ./...
