diff --git a/scripts/trigger.sh b/scripts/trigger.sh index fdbfd20..dbb2e1a 100755 --- a/scripts/trigger.sh +++ b/scripts/trigger.sh @@ -9,11 +9,15 @@ # YES= +QUIET= PROJECT=$(basename $(pwd)) -while getopts ydp: opt; do +while getopts ydqp: opt; do case "${opt}" in + q) + QUIET=1 + ;; p) PROJECT=${OPTARG} ;; @@ -75,7 +79,7 @@ eval $(grep ^SYS_OSGC_TOKEN SECRETS) GITLAB="https://gitlab.devtools.intel.com" -echo "Looking for CI trigger on ${PROJECT}" +(( ! QUIET )) && echo "Looking for CI trigger on ${PROJECT}" RESULTS=$(curl --noproxy '*' -s -X GET \ --header "PRIVATE-TOKEN: ${SYS_OSGC_TOKEN}" \ @@ -114,7 +118,7 @@ TOKEN=$(echo ${RESULTS} | sed -E 's#([[{},])#\1\n#g' | { }) [[ "${TOKEN}" == "" ]] && { - echo "'sys_osgc CI trigger' does not exist on ${PROJECT}." + (( ! QUIET )) && echo "'sys_osgc CI trigger' does not exist on ${PROJECT}." (( YES )) || while read -n1 -r -p "Create new trigger [y|N]? "; do case $REPLY in @@ -145,10 +149,10 @@ TOKEN=$(echo ${RESULTS} | sed -E 's#([[{},])#\1\n#g' | { exit 1 } - echo "Created token: ${TOKEN}" + (( ! QUIET )) && echo "Created token: ${TOKEN}" } -echo "Using token: ${TOKEN}" +(( ! QUIET )) && echo "Using token: ${TOKEN}" function post { CMD="curl --noproxy '*' -s -X POST -F token=${TOKEN} -F ref=${REF} " @@ -168,11 +172,13 @@ function post { return 1 } - echo -e "Pipeline URL:\n\n ${GITLAB}${PIPELINE}\n" + (( ! QUIET )) && echo -e "Pipeline URL:\n\n ${GITLAB}${PIPELINE}\n" + (( QUIET )) && echo "$(basename ${PIPELINE})" + true } -cat << EOF +(( ! QUIET )) && cat << EOF Triggering pipeline on project: ${PROJECT} diff --git a/scripts/watch.sh b/scripts/watch.sh index 4a8ce70..43a9367 100755 --- a/scripts/watch.sh +++ b/scripts/watch.sh @@ -1,21 +1,59 @@ #!/bin/bash +PIPELINE= +YES= +QUIET= + +while getopts ydqp: opt; do + case "${opt}" in + q) + QUIET=1 + ;; + p) + PROJECT=${OPTARG} + ;; + y) + YES=1 + ;; + [?]) + usage + exit 0 + ;; + esac +done +shift $(( OPTIND-1 )) + PIPELINE=$1 -[[ "${PIPELINE}" == "" ]] && { - >&2 echo "usage: watch PIPELINE" + +function usage { + cat << EOF +usage: watch [OPTIONS] PIPELINE + +Options: + -y Answer Yes to any prompts + -p PROJECT Project to watch. Default: SOLUTION defined or directory-name. + +EOF +} + +(( PIPELINE )) || { + usage >&2 exit -1 } # Bring in the variables from SOLUTION file, supporting # nested substitution -. SOLUTION +[[ -e SOLUTION ]] && . SOLUTION -VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) +[[ -e SOLUTION ]] && VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) for var in ${VARS[@]}; do export ${var} done -PROJECT="vtt/sws/osgc/solutions/$(basename $(pwd))" +PROJECT=${PROJECT:-${CONTAINER}} +PROJECT=${PROJECT:-$(basename $(pwd))} +PROJECT="vtt/sws/osgc/solutions/${PROJECT}" + URI_PROJECT=$(echo ${PROJECT} | sed -E 's,/,%2F,g') eval $(grep ^SYS_OSGC_TOKEN SECRETS) @@ -27,7 +65,7 @@ eval $(grep ^SYS_OSGC_TOKEN SECRETS) GITLAB="https://gitlab.devtools.intel.com" -echo "Looking for pipeline jobs for ${PIPELINE}" +(( ! QUIET )) && echo "Looking for pipeline ${PIPELINE} jobs for ${PROJECT}" function get_jobs { ECHO=$1 @@ -96,7 +134,7 @@ function update_log { LINES=${LINES%% *} } - tail -n +${LINES} "logs/${ID}-latest" + (( ! QUIET )) && tail -n +${LINES} "logs/${ID}-latest" mv "logs/${ID}-latest" "logs/${ID}" } @@ -107,7 +145,7 @@ while true; do "${GITLAB}/api/v4/projects/${URI_PROJECT}/pipelines/${PIPELINE}/jobs") JOBS=($(echo "${RESULTS}" | get_jobs)) - echo "JOBS: ${JOBS[@]}" + (( ! QUIET )) && echo "JOBS: ${JOBS[@]}" MORE=0 FAIL=0 @@ -136,11 +174,13 @@ while true; do ;; esac done + (( MORE == 0 )) && { - echo "No more jobs. Exiting." + (( FAIL )) && >&2 echo "See ${JOBS[*]} in logs for failures" + (( ! QUIET )) && echo "No more jobs. Exiting ${FAIL}" exit ${FAIL} } - echo "Sleeping 5 seconds for ${MORE} jobs." + (( ! QUIET )) && echo "Sleeping 5 seconds for ${MORE} jobs." sleep 5 done