fix underflow when clock is 0 #182
Workflow file for this run
This file contains 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@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 | |
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@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 | |
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 ./... | |
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@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 | |
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@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 | |
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 |