diff options
-rw-r--r-- | jjb/common/include-agl-lava-jobs-submit.sh | 36 | ||||
-rw-r--r-- | jjb/common/include-agl-lava-labs-prepare.sh | 33 | ||||
-rw-r--r-- | jjb/common/include-agl-run-test-short.sh | 13 |
3 files changed, 60 insertions, 22 deletions
diff --git a/jjb/common/include-agl-lava-jobs-submit.sh b/jjb/common/include-agl-lava-jobs-submit.sh index 3ebe8834..e7aed028 100644 --- a/jjb/common/include-agl-lava-jobs-submit.sh +++ b/jjb/common/include-agl-lava-jobs-submit.sh @@ -26,13 +26,11 @@ device_types=$__device_type device_types+=" " device_types+=${dt_aliases[$__device_type]} -# iterate over available labs -for lab in "${!labs[@]}"; do - for device_type in $device_types; do - val=${labs[$lab]} +for device_type in $device_types; do + val=${labs[$LAVA_LAB]} OFS=${IFS} IFS=';' - arr=(${labs[$lab]}) + arr=(${labs[$LAVA_LAB]}) IFS=${OFS} url=${arr[0]} @@ -44,8 +42,8 @@ for lab in "${!labs[@]}"; do echo -n "Checking for $device_type at $full_url... " line=$(lava-tool devices-list $full_url |grep $device_type | tr -d '[:space:]') if [ -z "$line" ]; then - echo "not found." - continue + echo "not found." + continue fi IFS='|' arr=($line) @@ -55,26 +53,26 @@ for lab in "${!labs[@]}"; do # device is only available if "idle" or "running" device_available=0 if [ x"$device_status" = x"idle" ]; then - device_available=1 + device_available=1 elif [ x"$device_status" = x"running" ]; then - device_available=1; + device_available=1; fi if [ $device_available = 0 ]; then - echo " Not Available. Status: $device_status" - continue + echo " Not Available. Status: $device_status" + continue else - echo " Found and available. Status: $device_status" + echo " Found and available. Status: $device_status" fi - + # Need to hack the real device-type name in the job file - JOB_FILE_NEW="${JOB_BASE}_${lab}.yaml" + JOB_FILE_NEW="${JOB_BASE}_${LAVA_LAB}.yaml" cat $JOB_FILE | sed "s/device_type: $__device_type/device_type: $device_type/" > $JOB_FILE_NEW # # LAVA job submit, get job ID and status from lava-tool output # - JOB_STATUS="${JOB_BASE}_${lab}.status" + JOB_STATUS="${JOB_BASE}_${LAVA_LAB}.status" lava-tool submit-job --block $full_url $JOB_FILE_NEW |tee $JOB_STATUS IFS=':' @@ -103,13 +101,13 @@ for lab in "${!labs[@]}"; do # after one successful submit, we're done if [ x"$status" = x"Complete" ]; then - exit 0 + exit 0 else - continue + continue fi - done done -# if we get here, none of the labs had a successful completion +# If we get here there was an issue in submitting the job to the lab +# Most probably the device got retired, offlined, reserved in the lab exit 1 diff --git a/jjb/common/include-agl-lava-labs-prepare.sh b/jjb/common/include-agl-lava-labs-prepare.sh index e36fa662..bc590600 100644 --- a/jjb/common/include-agl-lava-labs-prepare.sh +++ b/jjb/common/include-agl-lava-labs-prepare.sh @@ -13,6 +13,9 @@ labs=( # [baylibre_seattle]="http://lava.ished.com/;$LAB_BAYLIBRE_SEATTLE_USER;$LAB_BAYLIBRE_SEATTLE_TOKEN" ) +echo "## ${MACHINE} ##" +__MACHINE=${MACHINE%-nogfx} + # # Ensure python_keyring is set to plaintext. Required for # non-interactive use @@ -48,7 +51,7 @@ for lab in "${!labs[@]}"; do # LAVA URL with username full_url=${url/:\/\//:\/\/${user}\@} echo "LAVA auth-add for lab: $lab, URL: $full_url" - + # LAVA auth using token echo ${token} > $token_file lava-tool auth-add --token $token_file $full_url @@ -56,4 +59,32 @@ for lab in "${!labs[@]}"; do echo "ERROR: Lab ${lab}: lava-tool auth-add failed." fi rm -f $token_file + + # Find the LAVA Lab that has the device available to run the job + echo -n "Checking for $__MACHINE at $full_url... " + line=$(lava-tool devices-list $full_url |grep $__MACHINE | tr -d '[:space:]') + if [ -z "$line" ]; then + echo "not found." + continue + fi + IFS='|' + arr=($line) + device_status=${arr[2]} + IFS=${OFS} + + # device is only available if "idle" or "running" + device_available=0 + if [ x"$device_status" = x"idle" ]; then + device_available=1 + elif [ x"$device_status" = x"running" ]; then + device_available=1; + fi + + if [ $device_available = 0 ]; then + echo " Not Available. Status: $device_status" + continue + else + echo " Found and available. Status: $device_status" + export LAVA_LAB=$lab + fi done diff --git a/jjb/common/include-agl-run-test-short.sh b/jjb/common/include-agl-run-test-short.sh index 83bfc18c..fda2da9e 100644 --- a/jjb/common/include-agl-run-test-short.sh +++ b/jjb/common/include-agl-run-test-short.sh @@ -5,10 +5,19 @@ ## Run SHORT CI test ################################################################################ - set -x +# +# LAVA lab names for releng-scripts +# +declare -A lava_labs +lava_labs=( + [agl]="lab-agl-core" + [baylibre]="lab-baylibre-legacy" + ) + echo "## ${MACHINE} ##" +echo "# ${lava_labs[$LAVA_LAB]} #" cd $REPODIR # WIP: use $RELENG for subset of boards @@ -29,7 +38,7 @@ if [ ! -z $RELENG ] && \ [[ -e output/repo-manifest-r.txt.sha1 ]] && BUILD_VERSION+="-$(cat output/repo-manifest-r.txt.sha1)" CREATE_ARGS+="--name AGL-gerrit " CREATE_ARGS+="--build-version $BUILD_VERSION " - CREATE_ARGS+="--callback lab-baylibre-legacy " + CREATE_ARGS+="--callback ${lava_labs[$LAVA_LAB]} " CREATE_ARGS+="--test all" $RELENG/utils/create-jobs.py ${CREATE_ARGS} > testjob.yaml cat testjob.yaml |