[QA] Better retrieve job ID for a retried job
Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
2aeff4498b
commit
73dce6c870
|
|
@ -289,8 +289,8 @@ function get_job_id() {
|
|||
local url="https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/jobs?per_page=100&page=${page}${query_string}"
|
||||
echoerr "GET ${url}"
|
||||
|
||||
local job_id=$(curl --silent --show-error --header "PRIVATE-TOKEN: ${API_TOKEN}" "${url}" | jq ".[] | select(.name == \"${job_name}\") | .id")
|
||||
[[ "${job_id}" == "" && "${page}" -lt "$max_page" ]] || break
|
||||
local job_id=$(curl --silent --show-error --header "PRIVATE-TOKEN: ${API_TOKEN}" "${url}" | jq "map(select(.name == \"${job_name}\")) | map(.id) | last")
|
||||
[[ "${job_id}" == "null" && "${page}" -lt "$max_page" ]] || break
|
||||
|
||||
((page++))
|
||||
done
|
||||
|
|
@ -328,17 +328,18 @@ function wait_for_job_to_be_done() {
|
|||
|
||||
# In case the job hasn't finished yet. Keep trying until the job times out.
|
||||
local interval=30
|
||||
local elapsed=0
|
||||
local elapsed_seconds=0
|
||||
while true; do
|
||||
local job_status=$(curl --silent --show-error --header "PRIVATE-TOKEN: ${API_TOKEN}" "${url}" | jq ".status" | sed -e s/\"//g)
|
||||
[[ "${job_status}" == "pending" || "${job_status}" == "running" ]] || break
|
||||
|
||||
printf "."
|
||||
((elapsed+=$interval))
|
||||
((elapsed_seconds+=$interval))
|
||||
sleep ${interval}
|
||||
done
|
||||
|
||||
echoerr "Waited '${job_name}' for ${elapsed} seconds."
|
||||
local elapsed_minutes=$((elapsed_seconds / 60))
|
||||
echoerr "Waited '${job_name}' for ${elapsed_minutes} minutes."
|
||||
|
||||
if [[ "${job_status}" == "failed" ]]; then
|
||||
echo "The '${job_name}' failed."
|
||||
|
|
|
|||
Loading…
Reference in New Issue