Skip to content

Commit

Permalink
Move artifact upload code into the shell script
Browse files Browse the repository at this point in the history
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from #23551)
  • Loading branch information
hlandau committed Mar 21, 2024
1 parent f2db709 commit 9abcf11
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 20 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ jobs:
- name: save artifacts
uses: actions/upload-artifact@v4
with:
name: "ci@self-hosted"
name: "ci@self-hosted-${{ matrix.os }}"
path: artifacts/

minimal:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cross-compiles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,4 @@ jobs:
with:
name: "cross-compiles@${{ matrix.platform.arch }}"
path: artifacts/
if-no-files-found: ignore
26 changes: 24 additions & 2 deletions .github/workflows/make-test
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,38 @@ set -eo pipefail

cleanup() {
# Remove if nothing was generated.
find artifacts -type d -empty -delete
[ -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)"
echo Artifacts path is "$OSSL_CI_ARTIFACTS_PATH"

# 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
19 changes: 2 additions & 17 deletions test/recipes/70-test_quic_multistream.t
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ setup("test_quic_multistream");
plan skip_all => "QUIC protocol is not supported by this OpenSSL build"
if disabled('quic');

plan tests => 3;
plan tests => 2;

my $qlog_output;
if (!disabled('qlog') && $ENV{OSSL_RUN_CI_TESTS} == "1") {
if (!disabled('qlog')) {
$qlog_output = result_dir("qlog-output");
print "# Writing qlog output to $qlog_output\n";
rmtree($qlog_output, { safe => 1 });
Expand All @@ -44,18 +44,3 @@ SKIP: {
"running qlog verification script");
};
}

SKIP: {
skip "no qlog", 1 if disabled('qlog');
skip "not running CI tests", 1 unless $ENV{OSSL_RUN_CI_TESTS};
skip "not running artifacts upload", 1 unless $ENV{OSSL_CI_ARTIFACTS_PATH};

subtest "copy qlog artifacts to upload directory" => sub {
plan tests => 1;

my $artifacts_path = $ENV{OSSL_CI_ARTIFACTS_PATH};
mkpath("${artifacts_path}/quic_multistream_test");
ok(run(cmd(["mv", "--", $qlog_output,
"${artifacts_path}/quic_multistream_test/"])));
};
}

0 comments on commit 9abcf11

Please sign in to comment.