name: Go on: push: tags: - v* branches: - master paths: - '**.go' - ".goreleaser.yml" - ".golangci.yml" - ".dockerignore" - "Makefile" - "rules.mk" - "go.*" - ".github/workflows/go.yml" pull_request: paths: - '**.go' - ".goreleaser.yml" - ".golangci.yml" - ".dockerignore" - "Makefile" - "rules.mk" - "go.*" - ".github/workflows/go.yml" jobs: golangci-lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3.1.0 with: version: v1.38 #github-token: ${{ secrets.GITHUB_TOKEN }} args: --timeout=2m only-new-issues: false working-directory: . tests-on-windows: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: windows-latest strategy: matrix: golang: - 1.16.x steps: - uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - name: Run tests on Windows run: make.exe unittest continue-on-error: true tests-on-mac: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: macos-latest strategy: matrix: golang: - 1.16.x env: OS: macos-latest GOLANG: ${{ matrix.golang }} steps: - uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - uses: actions/cache@v2.1.7 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.golang }}- - name: Run tests on Unix-like operating systems run: make unittest - name: Check go.mod and go.sum run: | go mod tidy -v git --no-pager diff go.mod go.sum git --no-pager diff --quiet go.mod go.sum - name: Upload coverage to Codecov uses: codecov/codecov-action@v2.1.0 with: #token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.txt flags: unittests env_vars: OS,GOLANG name: codecov-umbrella fail_ci_if_error: false tests-on-linux: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: ubuntu-latest strategy: matrix: golang: - 1.14.x - 1.15.x - 1.16.x env: OS: ubuntu-latest GOLANG: ${{ matrix.golang }} steps: - uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - uses: actions/cache@v2.1.7 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.golang }}- - name: Check go.mod and go.sum run: | go mod tidy -v git --no-pager diff go.mod go.sum git --no-pager diff --quiet go.mod go.sum - name: Run tests on Unix-like operating systems run: make unittest - name: Upload coverage to Codecov uses: codecov/codecov-action@v2.1.0 with: #token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.txt flags: unittests env_vars: OS,GOLANG name: codecov-umbrella fail_ci_if_error: false