name: main
on:
  - push
  - pull_request
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Setup Go
        uses: actions/setup-go@v1
        with:
          go-version: 1.20
        id: go
      - name: Code checkout
        uses: actions/checkout@v1
      - name: Test
        run: |
          go test -v ./... -coverprofile=coverage.txt -covermode=atomic
          GOARCH=386 go test ./... -coverprofile=coverage.txt -covermode=atomic
          go test -v ./... -race
      - name: Build
        run: |
          GOOS=linux go build
          GOOS=darwin go build
          GOOS=freebsd go build
          GOOS=windows go build
          GOARCH=386 go build
      - name: Publish coverage
        uses: codecov/codecov-action@v1.0.6
        with:
          token: ${{secrets.CODECOV_TOKEN}}
          file: ./coverage.txt