Fix workarounds for archive paths 85/33385/8
authorVratko Polak <vrpolak@cisco.com>
Fri, 6 Aug 2021 09:54:37 +0000 (11:54 +0200)
committerVratko Polak <vrpolak@cisco.com>
Fri, 6 Aug 2021 09:55:28 +0000 (11:55 +0200)
https://gerrit.fd.io/r/c/ci-management/+/33060
has introduced workarounds for jobs
which create Robot outputs outside /archives/.
It got merged without verifying the workarounds work correctly.

+ The workaround for device job does not seem to be needed.
+ Perform the copy also when robot failed.

Fixes: 37a55a05cd6ac7ca15bbb99f5ddc9ca61874d5f8

Change-Id: I5e08545bd290fa917e85a375865a130c3f2ff996
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
jjb/scripts/vpp/copy_archives.sh [new file with mode: 0644]
jjb/scripts/vpp/csit-device.sh
jjb/scripts/vpp/csit-perf.sh
jjb/vpp/vpp.yaml

diff --git a/jjb/scripts/vpp/copy_archives.sh b/jjb/scripts/vpp/copy_archives.sh
new file mode 100644 (file)
index 0000000..d69ca7e
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+echo "---> jjb/scripts/vpp/copy_archives.sh"
+
+set -xuo pipefail
+set +e
+
+# Copy robot archives from perf job to where archive macro needs them.
+#
+# This has to be a script separate from csit-perf.sh, run as publisher,
+# because otherwise it is not easily possible to ensure this is executed
+# also when there is a test case failure.
+#
+# This can be removed when all CSIT branches use correct archive directory.
+# For fixed CSIT, the copy will fail, so errors are ignored everywhere.
+#
+# Variables read:
+# - WORKSPACE - Jenkins workspace to create csit subdirectory in.
+# Directories updated:
+# - ${WORKSPACE}/archives/csit_current - Current patch results are copied here.
+# - ${WORKSPACE}/archives/csit_parent - Parent patch results are copied here.
+
+mkdir -p "${WORKSPACE}/archives"
+cp -Rv "${WORKSPACE}/csit_current" "${WORKSPACE}/archives"
+cp -Rv "${WORKSPACE}/csit_parent" "${WORKSPACE}/archives"
index 8c76d71..6d4beb8 100644 (file)
@@ -38,4 +38,3 @@ fi
 popd
 csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
 source "${csit_entry_dir}/with_oper_for_vpp.sh" "per_patch_device.sh"
-cp -R "${WORKSPACE}/csit_current/archives/"* "${WORKSPACE}/archives/" || true
index cb13557..e573066 100644 (file)
@@ -38,5 +38,3 @@ fi
 popd
 csit_entry_dir="${WORKSPACE}/csit/resources/libraries/bash/entry"
 source "${csit_entry_dir}/with_oper_for_vpp.sh" "per_patch_perf.sh"
-cp -R "${WORKSPACE}/csit_current/"* "${WORKSPACE}/archives/" || true
-cp -R "${WORKSPACE}/csit_parent/"* "${WORKSPACE}/archives/" || true
index 3fddfae..cac2932 100644 (file)
           - ../scripts/vpp/csit-perf.sh
 
     publishers:
+      - postbuildscript:
+          # Can be removed when all CSIT branches use correct archive directory.
+          builders:
+            - build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell:
+                    !include-raw-escape:
+                    - ../scripts/vpp/copy_archives.sh
       - robot-report:
-          output-path: 'csit_current/0/'
+          output-path: 'archives/csit_current/0/'
 
       - fdio-infra-publish
 # [end] VPP-CSIT-VERIFY-PERF JOB TEMPLATE