name: Go on: push: tags: - v* branches: - master pull_request: jobs: golangci-lint: name: "GolangCI-lint" runs-on: ubuntu-latest strategy: matrix: golang: - 1.18.x steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - name: golangci-lint uses: golangci/golangci-lint-action@v3.3.0 with: go-version: ${{ matrix.golang }} version: v1.50.1 args: --timeout=10m go-tests: runs-on: ${{ matrix.os }} strategy: matrix: golang: ['1.18', '1.19'] os: ['ubuntu-latest', 'macos-latest'] env: OS: ${{ matrix.os }} GOLANG: ${{ matrix.golang }} steps: - name: Checkout uses: actions/checkout@master - name: Set up Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} # https://github.com/mattn/go-sqlite3/tree/v1.14.16#mac-osx - name: install sqlight (macos) if: matrix.os == 'macos-latest' run: | brew install sqlite3 brew upgrade icu4c - name: Cache Go modules uses: actions/cache@v1 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{matrix.golang}}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{matrix.golang}}- - name: Download modules run: go mod download - 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 with race (macos) if: matrix.os == 'macos-latest' run: go test -v -tags "darwin" -race ./... -test.timeout=10m - name: Run tests with race (linux) if: matrix.os == 'ubuntu-latest' run: go test -v -race ./... -test.timeout=10m