remove deprecated ioutil. #213
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Checks | |
| on: | |
| pull_request: | |
| # This workflow runs for not-yet-reviewed external contributions and so it | |
| # intentionally has no write access and only limited read access to the | |
| # repository. | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| name: "Run golangci-lint" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| GO_VERSION: [ "1.19","1.20","1.21" ] | |
| steps: | |
| - name: "Fetch source code" | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go toolchain | |
| uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1 | |
| with: | |
| go-version: ${{ matrix.GO_VERSION }} | |
| - name: Cache Go modules | |
| uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: go-mod-${{ matrix.GO_VERSION }}-${{ hashFiles('go.sum') }} | |
| restore-keys: | | |
| go-mod-${{ matrix.GO_VERSION }} | |
| - name: "Download golang-lint" | |
| run: | | |
| curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(go env GOPATH)/bin" | |
| golangci-lint --version | |
| - name: "lint" | |
| run: | | |
| golangci-lint run -v | |
| unit-tests: | |
| name: "Unit Tests" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| GO_VERSION: [ "1.19","1.20","1.21" ] | |
| steps: | |
| - name: "Fetch source code" | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go toolchain | |
| uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1 | |
| with: | |
| go-version: ${{ matrix.GO_VERSION }} | |
| # NOTE: This cache is shared so the following step must always be | |
| # identical across the unit-tests, e2e-tests, and consistency-checks | |
| # jobs, or else weird things could happen. | |
| - name: Cache Go modules | |
| uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: go-mod-${{ matrix.GO_VERSION }}-${{ hashFiles('go.sum') }} | |
| restore-keys: | | |
| go-mod-${{ matrix.GO_VERSION }} | |
| - name: "Unit tests" | |
| run: | | |
| go test -v -coverprofile=coverage.out ./... | |
| - name: Upload coverage report | |
| uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 | |
| with: | |
| path: coverage.out | |
| name: coverage-report-${{matrix.GO_VERSION}} | |
| - name: Display coverage report | |
| run: go tool cover -func=coverage.out | |
| unit-tests-race: | |
| name: "Unit Tests Race" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| GO_VERSION: [ "1.19","1.20","1.21" ] | |
| steps: | |
| - name: "Fetch source code" | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go toolchain | |
| uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1 | |
| with: | |
| go-version: ${{ matrix.GO_VERSION }} | |
| # NOTE: This cache is shared so the following step must always be | |
| # identical across the unit-tests, e2e-tests, and consistency-checks | |
| # jobs, or else weird things could happen. | |
| - name: Cache Go modules | |
| uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: go-mod-${{ matrix.GO_VERSION }}-${{ hashFiles('go.sum') }} | |
| restore-keys: | | |
| go-mod-${{ matrix.GO_VERSION }} | |
| - name: "Race Unit tests" | |
| run: | | |
| go test -race ./serf/... | |
| consistency-checks: | |
| name: "Code Consistency Checks" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| GO_VERSION: [ "1.19","1.20","1.21" ] | |
| steps: | |
| - name: "Fetch source code" | |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Install Go toolchain | |
| uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1 | |
| with: | |
| go-version: ${{ matrix.GO_VERSION }} | |
| # NOTE: This cache is shared so the following step must always be | |
| # identical across the unit-tests and consistency-checks | |
| # jobs, or else weird things could happen. | |
| - name: Cache Go modules | |
| uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: go-mod-${{ matrix.GO_VERSION }}-${{ hashFiles('go.sum') }} | |
| restore-keys: | | |
| go-mod-${{ matrix.GO_VERSION }} | |
| - name: "go.mod and go.sum consistency check" | |
| run: | | |
| go mod tidy | |
| if [[ -n "$(git status --porcelain)" ]]; then | |
| echo >&2 "ERROR: go.mod/go.sum are not up-to-date. Run 'go mod tidy' and then commit the updated files." | |
| exit 1 | |
| fi | |
| - name: "go vet" | |
| run: | | |
| go vet ./... | |
| - name: "go fmt check" | |
| run: | | |
| files=$(go fmt ./...) | |
| if [ -n "$files" ]; then | |
| echo "The following file(s) do not conform to go fmt:" | |
| echo "$files" | |
| exit 1 | |
| fi |