golift.io/starr@v1.0.0/.github/workflows/codetests.yml (about) 1 name: test-and-lint 2 on: 3 pull_request: 4 branches: 5 - main 6 permissions: 7 contents: read 8 jobs: 9 codespell: 10 runs-on: ubuntu-latest 11 steps: 12 - uses: actions/checkout@v3 13 - uses: codespell-project/actions-codespell@v2 14 with: 15 skip: .git 16 nopollution: 17 runs-on: ubuntu-latest 18 steps: 19 - uses: actions/checkout@v3 20 - name: no cross pollution 21 run: make nopollution 22 # Runs `go test` against 3 operating systems. 23 gotest: 24 strategy: 25 matrix: 26 os: [macos, windows, ubuntu] 27 runs-on: ${{ matrix.os }}-latest 28 steps: 29 - uses: actions/checkout@v3 30 - uses: actions/setup-go@v4 31 with: 32 go-version: '1.20' 33 - name: go-test 34 run: go test -race -v -covermode=atomic ./... 35 # Runs golangci-lint on macos against freebsd and macos. 36 golangci-darwin: 37 strategy: 38 matrix: 39 os: [darwin, freebsd] 40 name: golangci-lint 41 runs-on: macos-latest 42 env: 43 GOOS: ${{ matrix.os }} 44 steps: 45 - uses: actions/setup-go@v4 46 with: 47 go-version: '1.20' 48 - uses: actions/checkout@v3 49 - name: golangci-lint 50 uses: golangci/golangci-lint-action@v3 51 with: 52 version: 'v1.54' 53 # Runs golangci-lint on linux against linux and windows. 54 golangci-linux: 55 strategy: 56 matrix: 57 os: [windows, linux] 58 name: golangci-lint 59 runs-on: ubuntu-latest 60 env: 61 GOOS: ${{ matrix.os }} 62 steps: 63 - uses: actions/setup-go@v4 64 with: 65 go-version: '1.20' 66 - uses: actions/checkout@v3 67 - name: golangci-lint 68 uses: golangci/golangci-lint-action@v3 69 with: 70 version: 'v1.54'