blob: 158f5465ec7c10733a43037f52f40a67dc488fd8 [file] [log] [blame]
Zelalem8afa0922020-08-28 10:40:44 -05001#!/bin/bash
2#
Leonardo Sandoval579c7372020-10-23 15:23:32 -05003# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
Zelalem8afa0922020-08-28 10:40:44 -05004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8# Submit jobs to LAVA and wait until the job is complete. This script replace
9# the "managed script" previously used and provide the same behavior.
10#
11# Required arguments:
12# 1: yaml job file
13# 2: a location to store output
14#
15# output:
16# ./job_results.yaml
17# ${SAVE_OUTPUT}/job_output.log
18
19set -e
20
21source "$CI_ROOT/utils.sh"
22
Manish V Badarkhe20097fc2020-11-17 09:43:23 +000023export XDG_CONFIG_HOME="${WORKSPACE}"
24
Zelalem8afa0922020-08-28 10:40:44 -050025JOB_FILE="$1"
26SAVE_OUTPUT="$2"
27
28LAVA_HOST="${LAVA_HOST:-lava.oss.arm.com}"
29LAVA_USER="$3"
30LAVA_TOKEN="$4"
31LAVA_URL="https://${LAVA_HOST}"
32
33if [ ! -f "${JOB_FILE}" ]; then
34 echo "error: LAVA job file does not exist: ${JOB_FILE}"
35 exit 1
36fi
37
38# Install lavacli with fixes
39virtualenv -p $(which python3) venv
40source venv/bin/activate
Maksims Svecovs8cf07df2022-05-13 14:58:23 +010041pip install -q lavacli ruamel.yaml dataclasses
Zelalem8afa0922020-08-28 10:40:44 -050042
Zelalem8afa0922020-08-28 10:40:44 -050043# Configure lavacli
44lavacli identities add \
45--username $LAVA_USER \
46--token $LAVA_TOKEN \
47--uri ${LAVA_URL}/RPC2 \
48default
49
50# Submit a job using lavacli
51JOB_ID=$(lavacli jobs submit ${JOB_FILE})
52if [ -z "$JOB_ID" ] ; then
53 echo "Couldn't submit. Stopping."
54 exit 1
55fi
56
57echo "Job url: https://lava.oss.arm.com/scheduler/job/$JOB_ID"
58
59# Wait for the job to finish
60lavacli jobs wait $JOB_ID
61
62# Output to the specified directory before uploading artefacts
63mkdir -p "${SAVE_OUTPUT}"
Manish V Badarkhed9a95022021-07-26 06:02:59 +010064curl https://lava.oss.arm.com/scheduler/job/$JOB_ID/log_file/plain > "${SAVE_OUTPUT}/job_output.log"
Zelalem8afa0922020-08-28 10:40:44 -050065cp ${SAVE_OUTPUT}/job_output.log $workspace/artefacts
66
67# Send file(s) to artefacts receiver
68if upon "$jenkins_run" && upon "$artefacts_receiver" && [ -d "${SAVE_OUTPUT}" ]; then
69 source "$CI_ROOT/script/send_artefacts.sh" "${SAVE_OUTPUT}"
70fi
71
72# Get results
73lavacli results $JOB_ID --yaml > "job_results.yaml"
74
75# Exit virtualenv
76deactivate