diff --git a/.github/workflows/pr-builder.yml b/.github/workflows/pr-builder.yml index b0cea6e..a055e0d 100644 --- a/.github/workflows/pr-builder.yml +++ b/.github/workflows/pr-builder.yml @@ -1,41 +1,62 @@ -name: pr-builder.yml +name: Go CI on: + push: + branches: [ main ] pull_request: - branches: - - main + branches: [ main ] jobs: - build: + test: + name: Test runs-on: ubuntu-latest + strategy: + matrix: + go-version: ['1.20', '1.21'] steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: - go-version: '1.16' + go-version: ${{ matrix.go-version }} - - name: Cache Go modules - uses: actions/cache@v2 - with: - path: | - ~/go/pkg/mod - ~/.cache/go-build - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + - name: Get dependencies + run: go get -v -t -d ./... - - name: Install dependencies - run: go mod tidy + - name: Verify dependencies + run: go mod verify - - name: Build - run: go build -v ./... + - name: Run go vet + run: go vet ./... - name: Run tests - run: go test -v ./... + run: go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... - - name: Build status - run: echo "Build succeeded!" + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + files: ./coverage.txt + fail_ci_if_error: false + + build: + name: Build + runs-on: ubuntu-latest + strategy: + matrix: + go-version: ['1.20', '1.21'] + os: [ubuntu-latest, macos-latest] + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: ${{ matrix.go-version }} + + - name: Build + run: go build -v ./cmd/proxy