Skip to content

Sv/test ut debug

Sv/test ut debug #145

Workflow file for this run

name: Checks
on:
pull_request:
branches: [master]
# 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.24' # named in go.mod
- 'oldstable'
- 'stable'
steps:
- name: "Fetch source code"
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Install Go toolchain
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
with:
go-version: ${{ matrix.GO_VERSION }}
- name: Cache Go modules
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
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: "lint"
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8.0.0
unit-tests:
name: "Unit Tests"
runs-on: ubuntu-latest
strategy:
matrix:
GO_VERSION:
- '1.24' # named in go.mod
- 'oldstable'
- 'stable'
steps:
- name: "Fetch source code"
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Install Go toolchain
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
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 # v4.2.0
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 and generate coverage report"
run: |
echo "Step 1: Environment variables" && printenv
echo "Step 2: Network interfaces" && ip addr
echo "Step 3: Ulimit values" && ulimit -a
echo "Step 4: UDP connectivity test" && (echo test | nc -u -w1 127.0.0.2 9999 & sleep 1)
echo "Step 5: Go version" && go version
echo "Step 6: Current user" && whoami
go test -v -run ^TestMemberlist_PingDelegate$
make cov
- 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
- name: Build go
run: go build ./...
unit-tests-race:
name: "Unit Tests Race"
runs-on: ubuntu-latest
strategy:
matrix:
GO_VERSION:
- '1.24' # named in go.mod
- 'oldstable'
- 'stable'
steps:
- name: "Fetch source code"
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Install Go toolchain
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
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 # v4.2.0
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 ./...
- name: Race Build
run: go build -race ./...
consistency-checks:
name: "Code Consistency Checks"
runs-on: ubuntu-latest
strategy:
matrix:
GO_VERSION:
- '1.24' # named in go.mod
- 'oldstable'
- 'stable'
steps:
- name: "Fetch source code"
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: Install Go toolchain
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
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 # v4.2.0
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