From 9abcf116962e9a117717c751de93846f11da16cd Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Mon, 12 Feb 2024 13:17:01 +0000 Subject: Move artifact upload code into the shell script Reviewed-by: Neil Horman Reviewed-by: Tomas Mraz Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/23551) --- .github/workflows/ci.yml | 2 +- .github/workflows/cross-compiles.yml | 1 + .github/workflows/make-test | 26 ++++++++++++++++++++++++-- test/recipes/70-test_quic_multistream.t | 19 ++----------------- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7df5e8611..ae784cdb84 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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: diff --git a/.github/workflows/cross-compiles.yml b/.github/workflows/cross-compiles.yml index a452b8a467..2143b1e972 100644 --- a/.github/workflows/cross-compiles.yml +++ b/.github/workflows/cross-compiles.yml @@ -221,3 +221,4 @@ jobs: with: name: "cross-compiles@${{ matrix.platform.arch }}" path: artifacts/ + if-no-files-found: ignore diff --git a/.github/workflows/make-test b/.github/workflows/make-test index f77c7afb01..247b4c61bd 100755 --- a/.github/workflows/make-test +++ b/.github/workflows/make-test @@ -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 diff --git a/test/recipes/70-test_quic_multistream.t b/test/recipes/70-test_quic_multistream.t index 7257ca0938..abaeed8e58 100644 --- a/test/recipes/70-test_quic_multistream.t +++ b/test/recipes/70-test_quic_multistream.t @@ -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 }); @@ -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/"]))); - }; -} -- cgit v1.2.3