mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
name: Tests
|
|
on: [push, pull_request]
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- linux-amd64-fmt
|
|
- linux-amd64-integration-1-cpu
|
|
- linux-amd64-integration-2-cpu
|
|
- linux-amd64-integration-4-cpu
|
|
- linux-amd64-functional
|
|
- linux-amd64-unit-4-cpu-race
|
|
- all-build
|
|
- linux-amd64-grpcproxy
|
|
- linux-386-unit
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: "1.16.15"
|
|
- run: date
|
|
- env:
|
|
TARGET: ${{ matrix.target }}
|
|
run: |
|
|
go version
|
|
echo ${GOROOT}
|
|
# The version of ${GOROOT} is 1.16.15, while the `/usr/bin/go` links to go1.17.11.
|
|
# We need to make sure they are linking to the same go version; otherwise, we will
|
|
# run into issue: "compile: version go1.16.15 does not match go tool version go1.17.11".
|
|
# Refer to https://github.com/actions/setup-go/issues/107 as well.
|
|
sudo unlink /usr/bin/go; sudo ln -s ${GOROOT}/bin/go /usr/bin/go; ls -lrt /usr/bin/go
|
|
|
|
echo "${TARGET}"
|
|
case "${TARGET}" in
|
|
linux-amd64-fmt)
|
|
GOARCH=amd64 PASSES='fmt bom dep' ./test
|
|
;;
|
|
linux-amd64-integration-1-cpu)
|
|
GOARCH=amd64 CPU=1 PASSES='integration' RACE='false' ./test
|
|
;;
|
|
linux-amd64-integration-2-cpu)
|
|
GOARCH=amd64 CPU=2 PASSES='integration' RACE='false' ./test
|
|
;;
|
|
linux-amd64-integration-4-cpu)
|
|
GOARCH=amd64 CPU=4 PASSES='integration' RACE='false' ./test
|
|
;;
|
|
linux-amd64-functional)
|
|
./build && GOARCH=amd64 PASSES='functional' ./test
|
|
;;
|
|
linux-amd64-unit-4-cpu-race)
|
|
GOARCH=amd64 PASSES='unit' RACE='true' CPU='4' ./test -p=2
|
|
;;
|
|
all-build)
|
|
GOARCH=amd64 PASSES='build' ./test
|
|
GOARCH=386 PASSES='build' ./test
|
|
GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build
|
|
GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build
|
|
GO_BUILD_FLAGS='-v' GOARCH=arm ./build
|
|
GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build
|
|
GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build
|
|
GO_BUILD_FLAGS='-v' GOARCH=s390x ./build
|
|
;;
|
|
linux-amd64-grpcproxy)
|
|
PASSES='build grpcproxy' CPU='4' RACE='true' ./test 2>&1 | tee test.log
|
|
! egrep "(--- FAIL:|DATA RACE|panic: test timed out|appears to have leaked)" -B50 -A10 test.log
|
|
;;
|
|
linux-386-unit)
|
|
GOARCH=386 PASSES='unit' ./test
|
|
;;
|
|
*)
|
|
echo "Failed to find target"
|
|
exit 1
|
|
;;
|
|
esac
|