ci: add find job id argument job status:

if we retry failed job, we will have 2 jobs with same name in one pipeline. we need to use status to find the retried job instead of failed job.
This commit is contained in:
He Yin Ling 2020-01-22 10:04:54 +08:00
parent 7f84669054
commit 1fa6db757d

View File

@ -96,12 +96,14 @@ class Gitlab(object):
return raw_data_list return raw_data_list
def find_job_id(self, job_name, pipeline_id=None): def find_job_id(self, job_name, pipeline_id=None, job_status="success"):
""" """
Get Job ID from job name of specific pipeline Get Job ID from job name of specific pipeline
:param job_name: job name :param job_name: job name
:param pipeline_id: If None, will get pipeline id from CI pre-defined variable. :param pipeline_id: If None, will get pipeline id from CI pre-defined variable.
:param job_status: status of job. One pipeline could have multiple jobs with same name after retry.
job_status is used to filter these jobs.
:return: a list of job IDs (parallel job will generate multiple jobs) :return: a list of job IDs (parallel job will generate multiple jobs)
""" """
job_id_list = [] job_id_list = []
@ -112,7 +114,7 @@ class Gitlab(object):
for job in jobs: for job in jobs:
match = self.JOB_NAME_PATTERN.match(job.name) match = self.JOB_NAME_PATTERN.match(job.name)
if match: if match:
if match.group(1) == job_name: if match.group(1) == job_name and job.status == job_status:
job_id_list.append({"id": job.id, "parallel_num": match.group(3)}) job_id_list.append({"id": job.id, "parallel_num": match.group(3)})
return job_id_list return job_id_list