diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..9ff1589 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,32 @@ +name: Lint +on: + push: + branches: + - master + pull_request: + branches: + - master +permissions: + contents: read +jobs: + lint: + strategy: + matrix: + go: [ '1.20' ] + fail-fast: true + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Setup Go ${{ matrix.go }} + uses: actions/setup-go@v4 + with: + go-version: ${{ matrix.go }} + cache: false + + - name: Run GolangCI-Lint + uses: golangci/golangci-lint-action@v3 + with: + version: v1.56.1 + args: --timeout=5m \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/test.yml similarity index 64% rename from .github/workflows/ci.yml rename to .github/workflows/test.yml index 03ca69f..156803c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Go CI +name: Test on: push: @@ -8,25 +8,39 @@ on: branches: - master +permissions: + contents: read + jobs: test_and_lint: name: Test, Lint, and Coverage - runs-on: ubuntu-latest + strategy: + matrix: + go: [ '1.20' ] + os: [ ubuntu-latest, macos-latest, windows-latest ] + fail-fast: true + runs-on: ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Go + - name: Setup Go ${{ matrix.go }} uses: actions/setup-go@v4 with: - go-version: 1.20 + go-version: ${{ matrix.go }} + cache: false - name: Install dependencies run: go mod download - name: Run tests with coverage - run: go test ./... -v -coverprofile=coverage.out + run: go test -race -cover -coverprofile="coverage.out" -covermode=atomic -v ./... + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + files: ./coverage.out - name: Calculate coverage run: go tool cover -func=coverage.out | grep total | awk '{print substr($3, 1, length($3)-1)}' @@ -41,9 +55,3 @@ jobs: else echo "Code coverage ($COVERAGE%) meets the threshold of 75%." fi - - - name: Install GolangCI-Lint - run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@1.56.1 - - - name: Run GolangCI-Lint - run: golangci-lint run diff --git a/httpclient/example_rate_limiting_round_tripper_test.go b/httpclient/example_rate_limiting_round_tripper_test.go index bab84b4..8a37756 100644 --- a/httpclient/example_rate_limiting_round_tripper_test.go +++ b/httpclient/example_rate_limiting_round_tripper_test.go @@ -52,7 +52,7 @@ func ExampleNewRateLimitingRoundTripper() { prev = now } delta := time.Since(start) - time.Second*2 - if delta > time.Millisecond*10 { + if delta > time.Millisecond*20 { fmt.Println("Total time is much greater than 2s") } else { fmt.Println("Total time is about 2s")