| #!/usr/bin/env bash |
| # |
| # Copyright (c) 2019-2020 Arm Limited. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| # |
| |
| set -ex |
| |
| # Jenkins Parameterized Trigger Plugin mangles job names as passed via |
| # environment variables, replacing most non-alphanumeric chars with |
| # underscore. The mangling is generally non-reversible, but we apply |
| # "heuristics" based on our naming conventions. |
| function unmangle_job_name() { |
| # Two numbers seperated by undescore was likely a version number originally, |
| # e.g. lts2.8 -> lts2_8. |
| s=$(python3 -c 'import sys, re; print(re.sub(r"(\d+)_(\d+)", r"\1.\2", sys.argv[1]))' "$1") |
| # Otherwise, we use hyphens as seperators. |
| s=$(echo $s | tr "_" "-") |
| echo $s |
| } |
| |
| # Generate test report |
| if [ "$CI_ROOT" ]; then |
| # Gather Coverity scan summary if it was performed as part of this job |
| if [ "$(find -maxdepth 1 -name '*coverity*.test' -type f | wc -l)" != 0 ]; then |
| if ! "$CI_ROOT/script/coverity_summary.py" "$BUILD_URL" > coverity.data; then |
| rm -f coverity.data |
| fi |
| fi |
| |
| # set proper jobs names for test generation report script |
| if echo "$JENKINS_URL" | grep -q "oss.arm.com"; then |
| worker_job="${worker_job:-tf-worker}" |
| lava_job="${lava_job:-tf-build-for-lava}" |
| else |
| triggered_job=$(unmangle_job_name "${TRIGGERED_JOB_NAMES}") |
| worker_job="${worker_job:-${triggered_job}}" |
| lava_job="${lava_job:-${triggered_job}}" |
| fi |
| |
| # Generate UI for test results, only if this is a visualization job. |
| while getopts ":t" option; do |
| case $option in |
| t) |
| target_job="$(dirname $TARGET_BUILD)" |
| target=${target_job:-tf-a-main} |
| "$CI_ROOT/script/gen_results_report.py" \ |
| --png "${target}-result.png" \ |
| --csv "${WORKSPACE}/${target}-result.csv" \ |
| -o "${WORKSPACE}/report.html" || true |
| exit;; |
| esac |
| done |
| |
| "$CI_ROOT/script/gen_test_report.py" \ |
| --job "${worker_job}" \ |
| --build-job "${lava_job}" \ |
| --meta-data clone.data \ |
| --meta-data override.data \ |
| --meta-data inject.data \ |
| --meta-data html:coverity.data \ |
| || true |
| |
| source $CI_ROOT/script/gen_merge_report.sh "${WORKSPACE}/report.json" \ |
| "${WORKSPACE}/report.html" |
| fi |