summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2024-02-12 14:17:01 +0100
committerHugo Landau <hlandau@openssl.org>2024-03-21 18:57:50 +0100
commit9abcf116962e9a117717c751de93846f11da16cd (patch)
tree4f2e9ceab5ca27f320409b693f09b8f5cfecc889
parentExperimental support for uploading qlog artifacts (diff)
downloadopenssl-9abcf116962e9a117717c751de93846f11da16cd.tar.xz
openssl-9abcf116962e9a117717c751de93846f11da16cd.zip
Move artifact upload code into the shell script
Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/23551)
-rw-r--r--.github/workflows/ci.yml2
-rw-r--r--.github/workflows/cross-compiles.yml1
-rwxr-xr-x.github/workflows/make-test26
-rw-r--r--test/recipes/70-test_quic_multistream.t19
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/"])));
- };
-}