mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Assume #16916 as baseline. The E2E takes `1395.082s`. * https://github.com/etcd-io/etcd/pull/16988 It introduced `TestAuthority` which takes `18.39s`. And after https://github.com/etcd-io/etcd/pull/16997, it takes `50.05s`. * https://github.com/etcd-io/etcd/pull/16995 It introduced `TestInPlaceRecovery` which takes `17.37s`. * https://github.com/etcd-io/etcd/pull/17144 - New `TestHTTPHealthHandler` takes `29.9s` - New `TestHTTPLivezReadyzHandler` takes `35.20s` * https://github.com/etcd-io/etcd/pull/17173 - New `TestMemberReplace` takes `7.55s`. Ideally, it should increase `140.07s`. It's not larger than `1800s` timeout value. However, we run E2E cases 3 times. By default, we run E2E cases with `-cpu 1,2,4`. That means that we run 3 times. `1395.082s` + `140.07s * 3` = `1815.292s` > `1800s` ```bash $ go help testflag -count n Run each test, benchmark, and fuzz seed n times (default 1). If -cpu is set, run n times for each GOMAXPROCS value. Examples are always run once. -count does not apply to fuzz tests matched by -fuzz. ``` I don't think we should run E2E with different GOMAXPROCS value. All the `TestXYZ` are used to control etcd process and we don't set GOMAXPROCS env to etcd process. Set `CPU=4` to align with main and release/3.5. Closes: #17241 Signed-off-by: Wei Fu <fuweid89@gmail.com>
80 lines
2.5 KiB
YAML
80 lines
2.5 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-amd64-e2e
|
|
- linux-386-unit
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- id: goversion
|
|
run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT"
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ steps.goversion.outputs.goversion }}
|
|
- run: date
|
|
- env:
|
|
TARGET: ${{ matrix.target }}
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
go version
|
|
echo ${GOROOT}
|
|
echo "${TARGET}"
|
|
case "${TARGET}" in
|
|
linux-amd64-fmt)
|
|
GOARCH=amd64 PASSES='fmt bom dep' ./test
|
|
;;
|
|
linux-amd64-integration-1-cpu)
|
|
GOARCH=amd64 CPU=1 RACE='false' make test-integration
|
|
;;
|
|
linux-amd64-integration-2-cpu)
|
|
GOARCH=amd64 CPU=2 RACE='false' make test-integration
|
|
;;
|
|
linux-amd64-integration-4-cpu)
|
|
GOARCH=amd64 CPU=4 RACE='false' make test-integration
|
|
;;
|
|
linux-amd64-functional)
|
|
./build && GOARCH=amd64 PASSES='functional' ./test
|
|
;;
|
|
linux-amd64-unit-4-cpu-race)
|
|
GOARCH=amd64 RACE='true' CPU='4' GO_TEST_FLAGS='-p=2' make test-unit
|
|
;;
|
|
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
|
|
;;
|
|
linux-amd64-e2e)
|
|
make install-gofail
|
|
GOARCH=amd64 FAILPOINTS='true' CPU='4' make test-e2e-release
|
|
;;
|
|
linux-386-unit)
|
|
GOARCH=386 make test-unit
|
|
;;
|
|
*)
|
|
echo "Failed to find target"
|
|
exit 1
|
|
;;
|
|
esac
|