diff options
Diffstat (limited to '.github/workflows/make-test')
-rwxr-xr-x | .github/workflows/make-test | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/.github/workflows/make-test b/.github/workflows/make-test new file mode 100755 index 0000000000..247b4c61bd --- /dev/null +++ b/.github/workflows/make-test @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -eo pipefail + +cleanup() { + # Remove if nothing was generated. + [ -d artifacts ] && find artifacts -type d -empty -delete +} +trap cleanup EXIT + +# Make a central directory to store all output artifacts of our test run to +# avoid having to configure multiple upload-artifacts steps in the workflow +# file. +OSSL_CI_ARTIFACTS_PATH="artifacts/" +if [ -n "${GITHUB_RUN_NUMBER}" ]; then + OSSL_CI_ARTIFACTS_PATH="artifacts/github-${GITHUB_JOB}-${GITHUB_RUN_NUMBER}-${GITHUB_RUN_ID}/" +fi +mkdir -p "$OSSL_CI_ARTIFACTS_PATH" +export OSSL_CI_ARTIFACTS_PATH="$(cd "$OSSL_CI_ARTIFACTS_PATH"; pwd)" + +# Run the tests. This might fail, but we need to capture artifacts anyway. +set +e +make test HARNESS_JOBS=${HARNESS_JOBS:-4} "$@" +RESULT=$? +set -e + +# Move an interesting subset of the test-runs data we want into the artifacts +# staging directory. +for test_name in quic_multistream; do + if [ -d "test-runs/test_${test_name}" ]; then + mv "test-runs/test_${test_name}" "$OSSL_CI_ARTIFACTS_PATH/" + fi +done + +# Log the artifact tree. +echo "::group::List of artifact files generated" +echo "Test suite exited with $RESULT, artifacts path is $OSSL_CI_ARTIFACTS_PATH" +(cd "$OSSL_CI_ARTIFACTS_PATH"; find . -type f | sort) +echo "::endgroup::" + +exit $RESULT |