Merge pull request #13152 from serathius/junit

*: Upload test junit results
This commit is contained in:
Piotr Tabor 2021-07-03 11:35:15 +02:00 committed by GitHub
commit 9530ff93a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 96 additions and 26 deletions

56
.github/workflows/build.yaml vendored Normal file
View File

@ -0,0 +1,56 @@
name: Build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64
- linux-386
- darwin-amd64
- windows-amd64
- linux-arm
- linux-arm64
- linux-ppc64le
- linux-s390x
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "^1.16"
- env:
TARGET: ${{ matrix.target }}
run: |
echo "${TARGET}"
case "${TARGET}" in
linux-amd64)
ARCH=amd64 PASSES='build' ./test.sh
;;
linux-386)
ARCH=386 PASSES='build' ./test.sh
;;
darwin-amd64)
ARCH=amd64 GOOS=darwin GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
windows-amd64)
ARCH=amd64 GOOS=windows GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
linux-arm)
ARCH=arm GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
linux-arm64)
ARCH=arm64 GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
linux-ppc64le)
ARCH=ppc64le GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
linux-s390x)
ARCH=s390x GO_BUILD_FLAGS='-v -mod=readonly' ./build.sh
;;
*)
echo "Failed to find target"
exit 1
;;
esac

29
.github/workflows/static-analysis.yaml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Static Analysis
on: [push, pull_request]
jobs:
run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- linux-amd64-fmt
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "^1.16"
- run: date
- env:
TARGET: ${{ matrix.target }}
run: |
echo "${TARGET}"
case "${TARGET}" in
linux-amd64-fmt)
GOARCH=amd64 PASSES='fmt bom dep' ./test.sh
;;
*)
echo "Failed to find target"
exit 1
;;
esac

View File

@ -7,12 +7,10 @@ jobs:
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-unit-4-cpu-race
- all-build
- linux-386-unit-1-cpu
steps:
- uses: actions/checkout@v2
@ -23,11 +21,9 @@ jobs:
- env:
TARGET: ${{ matrix.target }}
run: |
echo "${TARGET}"
mkdir "${TARGET}"
export JUNIT_REPORT_DIR=$(realpath ${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
;;
@ -40,16 +36,6 @@ jobs:
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-386-unit-1-cpu)
GOARCH=386 PASSES='unit' RACE='false' CPU='1' ./test -p=4
;;
@ -58,3 +44,7 @@ jobs:
exit 1
;;
esac
- uses: actions/upload-artifact@v2
if: always()
with:
path: ./**/junit_*.xml

View File

@ -231,13 +231,8 @@ function produce_junit_xmlreport {
local junit_xml_filename
junit_xml_filename="${junit_filename_prefix}.xml"
if ! command -v gotestsum >/dev/null 2>&1; then
log_callout "gotestsum not found; installing now"
pushd "${ETCD_ROOT_DIR}/tools/mod" >/dev/null || return
GO111MODULE=on go install gotest.tools/gotestsum
popd >/dev/null || return
fi
gotestsum --junitfile "${junit_xml_filename}" --raw-command cat "${junit_filename_prefix}"*.stdout
# Ensure that gotestsum is run without cross-compiling
run_go_tool gotest.tools/gotestsum --junitfile "${junit_xml_filename}" --raw-command cat "${junit_filename_prefix}"*.stdout || exit 1
if [ "${VERBOSE}" != "1" ]; then
rm "${junit_filename_prefix}"*.stdout
fi
@ -360,7 +355,7 @@ function tool_exists {
# Ensure gobin is available, as it runs majority of the tools
if ! command -v "gobin" >/dev/null; then
run env GO111MODULE=off go get github.com/myitcv/gobin || exit 1
GOARCH="" run env GO111MODULE=off go get github.com/myitcv/gobin || exit 1
fi
# tool_get_bin [tool] - returns absolute path to a tool binary (or returns error)
@ -386,11 +381,11 @@ function tool_pkg_dir {
# tool_get_bin [tool]
function run_go_tool {
local cmdbin
if ! cmdbin=$(tool_get_bin "${1}"); then
if ! cmdbin=$(GOARCH="" tool_get_bin "${1}"); then
return 2
fi
shift 1
run "${cmdbin}" "$@" || return 2
GOARCH="" run "${cmdbin}" "$@" || return 2
}
# assert_no_git_modifications fails if there are any uncommited changes.