-
Notifications
You must be signed in to change notification settings - Fork 597
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* use github actions to run go tests and use go 1.18.1 * only run race for the serf package * fix yaml format * remove race * replace golangci-lint check with go vet, as alot of linter errors need to be fixed before we can lint serf * fix yaml alignment * use a matrix run and add gofmt checks * fix variable names * fix fmt checks * deactivate a flaky test * run race tests in parallel * add version to cache
- Loading branch information
1 parent
7c00845
commit b3a2384
Showing
5 changed files
with
128 additions
and
60 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
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: | ||
unit-tests: | ||
name: "Unit Tests" | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
GO_VERSION: [ "1.16","1.17","1.18" ] | ||
steps: | ||
- name: "Fetch source code" | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Go toolchain | ||
uses: actions/setup-go@v2 | ||
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@v3 | ||
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.16","1.17","1.18" ] | ||
steps: | ||
- name: "Fetch source code" | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Go toolchain | ||
uses: actions/setup-go@v2 | ||
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@v3 | ||
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.16","1.17","1.18" ] | ||
steps: | ||
- name: "Fetch source code" | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Go toolchain | ||
uses: actions/setup-go@v2 | ||
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@v3 | ||
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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
//go:build !race | ||
// +build !race | ||
|
||
package race | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
//go:build race | ||
// +build race | ||
|
||
package race | ||
|
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