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'