Commit 471728f8 authored by Achilleas Pipinellis's avatar Achilleas Pipinellis

Wait for the pipeline to start before canceling it

parent 95016507
...@@ -24,8 +24,8 @@ def docs_branch ...@@ -24,8 +24,8 @@ def docs_branch
# The maximum string length a file can have on a filesystem (ext4) # The maximum string length a file can have on a filesystem (ext4)
# is 63 characters. Let's use something smaller to be 100% sure. # is 63 characters. Let's use something smaller to be 100% sure.
max = 42 max = 42
# Prefix the remote branch with 'preview-' in order to avoid # Prefix the remote branch with the slug of the project in order
# name conflicts in the rare case the branch name already # to avoid name conflicts in the rare case the branch name already
# exists in the docs repo and truncate to max length. # exists in the docs repo and truncate to max length.
"#{slug}-#{ENV["CI_COMMIT_REF_SLUG"]}"[0...max] "#{slug}-#{ENV["CI_COMMIT_REF_SLUG"]}"[0...max]
end end
...@@ -41,12 +41,21 @@ def create_remote_branch ...@@ -41,12 +41,21 @@ def create_remote_branch
Gitlab.create_branch(GITLAB_DOCS_REPO, docs_branch, 'master') Gitlab.create_branch(GITLAB_DOCS_REPO, docs_branch, 'master')
puts "=> Remote branch '#{docs_branch}' created" puts "=> Remote branch '#{docs_branch}' created"
# Get the latest pipeline ID which is also the first pipelines = nil
pipeline_id = Gitlab.pipelines(GITLAB_DOCS_REPO, { ref: docs_branch }).last.id
# Wait until the pipeline is started
loop do
sleep 1
puts "=> Waiting for pipeline to start..."
pipelines = Gitlab.pipelines(GITLAB_DOCS_REPO, { ref: docs_branch })
break if pipelines.any?
end
# Get the first pipeline ID which should be the only one for the branch
pipeline_id = pipelines.first.id
# Cancel the pipeline # Cancel the pipeline
Gitlab.cancel_pipeline(GITLAB_DOCS_REPO, pipeline_id) Gitlab.cancel_pipeline(GITLAB_DOCS_REPO, pipeline_id)
puts "=> Canceled uneeded pipeline #{pipeline_id} for '#{docs_branch}'"
rescue Gitlab::Error::BadRequest rescue Gitlab::Error::BadRequest
puts "=> Remote branch '#{docs_branch}' already exists" puts "=> Remote branch '#{docs_branch}' already exists"
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment