mirror of
https://github.com/openssl/openssl.git
synced 2024-12-21 06:09:35 +08:00
58ffcbbdc3
Some CI jobs produce a significant amount artifacts and it takes a lot of time to upload them into GitHub artifacts storage. It will be much faster to upload only one archive with artifacts. Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24264)
44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/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
|