From e818f2179081fcbbe84e8396af89b5de7b3bf8f3 Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Thu, 6 May 2021 14:37:30 +0200 Subject: [PATCH] Migrate PR testing from travis to GitHub actions --- .github/workflows/unit-tests.yaml | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/unit-tests.yaml diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml new file mode 100644 index 00000000000..4e3dec15d1b --- /dev/null +++ b/.github/workflows/unit-tests.yaml @@ -0,0 +1,78 @@ +name: Unit Tests +on: [push] +jobs: + test: + # TODO: Remove continue-on-error after migrating from Travis to GitHub Actions + continue-on-error: true + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + # TODO: Add tip when https://github.com/actions/setup-go/issues/21 is resolved + go: [1.16.3] + target: + - linux-amd64-fmt + - linux-amd64-grpcproxy + - linux-amd64-coverage + - 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-fmt-unit-go-tip-2-cpu + - linux-386-unit-1-cpu + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + - run: date + - env: + TARGET: ${{ matrix.target }} + run: | + echo "${TARGET}" + case "${TARGET}" in + linux-amd64-fmt) + GOARCH=amd64 PASSES='fmt bom dep' ./test.sh + ;; + linux-amd64-integration-1-cpu) + GOARCH=amd64 CPU=1 PASSES='integration' RACE='false' ./test.sh + ;; + linux-amd64-integration-2-cpu) + GOARCH=amd64 CPU=2 PASSES='integration' RACE='false' ./test.sh + ;; + linux-amd64-integration-4-cpu) + GOARCH=amd64 CPU=4 PASSES='integration' RACE='false' ./test.sh + ;; + linux-amd64-functional) + GO_BUILD_FLAGS='-v -mod=readonly' ./build && GOARCH=amd64 PASSES='functional' ./test + ;; + linux-amd64-unit-4-cpu-race) + GOARCH=amd64 PASSES='unit' RACE='true' CPU='4' ./test.sh -p=2 + ;; + all-build) + GOARCH=amd64 PASSES='build' ./test.sh + GOARCH=386 PASSES='build' ./test.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOOS=darwin GOARCH=amd64 ./build.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOOS=windows GOARCH=amd64 ./build.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOARCH=arm ./build.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOARCH=arm64 ./build.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOARCH=ppc64le ./build.sh + GO_BUILD_FLAGS='-v -mod=readonly' GOARCH=s390x ./build.sh + ;; + linux-amd64-grpcproxy) + PASSES='build grpcproxy' CPU='4' COVER='false' RACE='true' ./test.sh 2>&1 | tee test.log + ! egrep "(--- FAIL:|DATA RACE|panic: test timed out|appears to have leaked)" -B50 -A10 test.log + ;; + linux-amd64-coverage) + ./scripts/codecov_upload.sh test-coverage.log \ + ! egrep "(--- FAIL:|DATA RACE|panic: test timed out|appears to have leaked)" -B50 -A10 test-coverage.log + ;; + linux-amd64-fmt-unit-go-tip-2-cpu) + GOARCH=amd64 PASSES='fmt unit' CPU='2' RACE='false' ./test.sh -p=2 + ;; + linux-386-unit-1-cpu) + GOARCH=386 PASSES='unit' RACE='false' CPU='1' ./test -p=4 + ;; + esac