From ea8bf1e514d2f442dd1a008794eb1563e2ee1c48 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Fri, 4 Sep 2020 12:42:58 -0400 Subject: scripts/ci/gitlab-pipeline-status: wait for pipeline creation When called in wait mode, this script will also wait for the pipeline to be get to a "running" state. Because many more status may be seen until a pipeline gets to "running", and those need to be handle too. Reference: https://docs.gitlab.com/ee/api/pipelines.html#list-project-pipelines Signed-off-by: Cleber Rosa Message-Id: <20200904164258.240278-8-crosa@redhat.com> Signed-off-by: Thomas Huth --- scripts/ci/gitlab-pipeline-status | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/ci/gitlab-pipeline-status b/scripts/ci/gitlab-pipeline-status index 628150c..bac8233 100755 --- a/scripts/ci/gitlab-pipeline-status +++ b/scripts/ci/gitlab-pipeline-status @@ -83,13 +83,22 @@ def wait_on_pipeline_success(timeout, interval, print(msg) return False - status = get_pipeline_status(project_id, commit_sha) - if status['status'] == 'running': - print('running...') + try: + status = get_pipeline_status(project_id, commit_sha) + except NoPipelineFound: + print('Pipeline has not been found, it may not have been created yet.') + time.sleep(1) + continue + + pipeline_status = status['status'] + status_to_wait = ('created', 'waiting_for_resource', 'preparing', + 'pending', 'running') + if pipeline_status in status_to_wait: + print('%s...' % pipeline_status) time.sleep(interval) continue - if status['status'] == 'success': + if pipeline_status == 'success': return True msg = "Pipeline failed, check: %s" % status['web_url'] -- cgit v1.1