| 1 | #!/bin/bash -xeu |
| 2 | # Copyright (C) 2016 - Francis Deslauriers <francis.deslauriers@efficios.com> |
| 3 | # |
| 4 | # This program is free software: you can redistribute it and/or modify |
| 5 | # it under the terms of the GNU General Public License as published by |
| 6 | # the Free Software Foundation, either version 3 of the License, or |
| 7 | # (at your option) any later version. |
| 8 | # |
| 9 | # This program is distributed in the hope that it will be useful, |
| 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 | # GNU General Public License for more details. |
| 13 | # |
| 14 | # You should have received a copy of the GNU General Public License |
| 15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 16 | |
| 17 | echo 'At this point, we built the modules and kernel if we needed to.' |
| 18 | echo 'We can now launch the lava job using those artefacts' |
| 19 | |
| 20 | venv=$(mktemp -d) |
| 21 | virtualenv -p python3 "$venv" |
| 22 | set +eu |
| 23 | source "${venv}/bin/activate" |
| 24 | set -eu |
| 25 | pip install pyyaml Jinja2 |
| 26 | |
| 27 | python -u "$LTTNG_CI_PATH"/scripts/system-tests/lava-submit.py \ |
| 28 | -t baremetal-benchmarks \ |
| 29 | -j "$JOB_NAME" \ |
| 30 | -k "$STORAGE_KERNEL_IMAGE" \ |
| 31 | -km "$STORAGE_LINUX_MODULES" \ |
| 32 | -lm "$STORAGE_LTTNG_MODULES" \ |
| 33 | -tc "$LTTNG_TOOLS_COMMIT_ID" |
| 34 | |
| 35 | python -u "$LTTNG_CI_PATH"/scripts/system-tests/lava2-submit.py \ |
| 36 | -t baremetal-benchmarks \ |
| 37 | -j "$JOB_NAME" \ |
| 38 | -k "$S3_URL_KERNEL_IMAGE" \ |
| 39 | -km "$S3_URL_LINUX_MODULES" \ |
| 40 | -lm "$S3_URL_LTTNG_MODULES" \ |
| 41 | -tc "$LTTNG_TOOLS_COMMIT_ID" |
| 42 | set +eu |
| 43 | deactivate |
| 44 | set -eu |
| 45 | rm -rf "$venv" |
| 46 | |
| 47 | # Create a results folder for this job |
| 48 | RESULT_STORAGE_FOLDER="$BASE_STORAGE_FOLDER/benchmark-results/$JOB_NAME/$BUILD_NUMBER" |
| 49 | $SSH_COMMAND "$STORAGE_USER@$STORAGE_HOST" mkdir -p "$RESULT_STORAGE_FOLDER" |
| 50 | |
| 51 | # Create a metadata file for this job containing the build_id, timestamp and the commit ids |
| 52 | TIMESTAMP=$(/bin/date --iso-8601=seconds) |
| 53 | LTTNG_CI_COMMIT_ID="$(git --git-dir="$LTTNG_CI_PATH"/.git/ --work-tree="$LTTNG_CI_PATH" rev-parse --short HEAD)" |
| 54 | |
| 55 | echo "build_id,timestamp,kernel_commit,modules_commit,tools_commit,ci_commit" > metadata.csv |
| 56 | echo "$BUILD_NUMBER,$TIMESTAMP,$KERNEL_COMMIT_ID,$LTTNG_MODULES_COMMIT_ID,$LTTNG_TOOLS_COMMIT_ID,$LTTNG_CI_COMMIT_ID" >> metadata.csv |
| 57 | |
| 58 | # Copy the result files for each benchmark and metadata on storage server |
| 59 | $SCP_COMMAND ./processed_results_close.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/close.csv" |
| 60 | $SCP_COMMAND ./processed_results_ioctl.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/ioctl.csv" |
| 61 | $SCP_COMMAND ./processed_results_open_efault.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/open-efault.csv" |
| 62 | $SCP_COMMAND ./processed_results_open_enoent.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/open-enoent.csv" |
| 63 | $SCP_COMMAND ./processed_results_dup_close.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/dup-close.csv" |
| 64 | $SCP_COMMAND ./processed_results_lttng_test_filter.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/lttng-test-filter.csv" |
| 65 | $SCP_COMMAND ./processed_results_raw_syscall_getpid.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/raw_syscall_getpid.csv" |
| 66 | $SCP_COMMAND ./metadata.csv "$STORAGE_USER@$STORAGE_HOST:$RESULT_STORAGE_FOLDER/metadata.csv" |