| name: Test |
| on: [push, pull_request] |
| jobs: |
| build: |
| strategy: |
| matrix: |
| go-version: [1.25.x, 1.26.x] |
| platform: [windows-latest] |
| runs-on: ${{ matrix.platform }} |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 |
| with: |
| go-version: ${{ matrix.go-version }} |
| - name: Checkout code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| - name: Build |
| run: | |
| go build ./... |
| - name: Run Windows Unit Tests |
| run: | |
| $env:GH_ACTION="TRUE" |
| go test -v -race ./mount/... |
| test: |
| strategy: |
| matrix: |
| go-version: [1.25.x, 1.26.x] |
| platform: [ubuntu-latest, macos-latest] |
| runs-on: ${{ matrix.platform }} |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 |
| with: |
| go-version: ${{ matrix.go-version }} |
| - name: Checkout code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| - name: Test |
| run: | |
| make test |
| verify-go-directive: |
| strategy: |
| matrix: |
| go-version: [1.25.x, 1.26.x] |
| platform: [ubuntu-latest, macos-latest] |
| runs-on: ${{ matrix.platform }} |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 |
| with: |
| go-version: ${{ matrix.go-version }} |
| - name: Checkout code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| - name: Verify go directive |
| run: | |
| make verify-go-directive |
| lint: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 |
| with: |
| go-version: v1.25 |
| - name: Checkout code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| - name: Lint |
| uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0 |
| with: |
| version: v2.4.0 |
| args: -v --enable-only govet,misspell,ineffassign |
| apidiff: |
| runs-on: ubuntu-latest |
| if: github.base_ref |
| steps: |
| - name: Install Go |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6 |
| with: |
| go-version: 1.25.x |
| - name: Add GOBIN to PATH |
| run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH |
| - name: Install dependencies |
| run: go install golang.org/x/exp/cmd/apidiff@latest |
| - name: Checkout old code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| with: |
| ref: ${{ github.base_ref }} |
| path: "old" |
| - name: Checkout new code |
| uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 |
| with: |
| path: "new" |
| - name: APIDiff |
| run: ./hack/verify-apidiff.sh -d ../old |
| working-directory: "new" |