name: main
on:
  push:
    paths-ignore:
      - 'docs/**'
      - '**.md'
  pull_request:
    paths-ignore:
      - 'docs/**'
      - '**.md'
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Setup Go
        uses: actions/setup-go@master
        with:
          go-version: 1.15
        id: go
      - name: Dependencies
        env:
          GO111MODULE: on
        run: |
          go get -u golang.org/x/lint/golint
          go get -u github.com/kisielk/errcheck
          curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.27.0
      - name: Code checkout
        uses: actions/checkout@master
      - name: Build
        env:
          GO111MODULE: on
        run: |
          export PATH=$PATH:$(go env GOPATH)/bin # temporary fix. See https://github.com/actions/setup-go/issues/14
          make check-all
          git diff --exit-code
          make test-full
          make test-pure
          make test-full-386
          make victoria-metrics
          make victoria-metrics-pure
          make victoria-metrics-arm
          make victoria-metrics-arm64
          make vmutils
          GOOS=freebsd go build -mod=vendor ./app/victoria-metrics
          GOOS=freebsd go build -mod=vendor ./app/vmagent
          GOOS=freebsd go build -mod=vendor ./app/vmalert
          GOOS=freebsd go build -mod=vendor ./app/vmbackup
          GOOS=freebsd go build -mod=vendor ./app/vmrestore
          GOOS=openbsd go build -mod=vendor ./app/victoria-metrics
          GOOS=openbsd go build -mod=vendor ./app/vmagent
          GOOS=openbsd go build -mod=vendor ./app/vmalert
          GOOS=openbsd go build -mod=vendor ./app/vmbackup
          GOOS=openbsd go build -mod=vendor ./app/vmrestore
          GOOS=darwin go build -mod=vendor ./app/victoria-metrics
          GOOS=darwin go build -mod=vendor ./app/vmagent
          GOOS=darwin go build -mod=vendor ./app/vmalert
          GOOS=darwin go build -mod=vendor ./app/vmbackup
          GOOS=darwin go build -mod=vendor ./app/vmrestore
      - name: Publish coverage
        uses: codecov/codecov-action@v1.0.6
        with:
          token: ${{secrets.CODECOV_TOKEN}}
          file: ./coverage.txt