| on: [push, pull_request] |
| name: Test |
| |
| jobs: |
| go-test: |
| strategy: |
| matrix: |
| go-version: [1.21, 1.x] # Test 1.21 and tip |
| os: [ubuntu-latest, macos-latest, windows-latest] |
| runs-on: ${{ matrix.os }} |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@v2 |
| with: |
| go-version: ${{ matrix.go-version }} |
| - name: Checkout code |
| uses: actions/checkout@v2 |
| - name: Build |
| run: go build |
| - name: Build in GOPATH |
| if: ${{ matrix.os != 'windows-latest' }} |
| run: go build -o $(go env GOPATH)/bin/docker-credential-gcr main.go |
| - name: Vet |
| run: go vet ./... |
| - name: Test mac/ubuntu |
| if: ${{ matrix.os != 'windows-latest' }} |
| run: | |
| go test -timeout 10s -v ./... |
| go test -race -timeout 10s -v ./... |
| env: |
| MallocNanoZone: 0 |
| - name: Test windows |
| if: ${{ matrix.os == 'windows-latest' }} |
| run: | |
| go test -timeout 10s -v -tags=windows ./... |
| go test -race -timeout 10s -v -tags=windows ./... |
| goreleaser-test: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| - name: Set up Go |
| uses: actions/setup-go@v5 |
| - name: Build GoReleaser |
| uses: goreleaser/goreleaser-action@v6 |
| with: |
| distribution: goreleaser |
| version: '~> v2' |
| args: build --snapshot --clean |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |