12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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::"
- echo "Archive artifacts"
- tar -czvf artifacts.tar.gz $OSSL_CI_ARTIFACTS_PATH
- exit $RESULT
|