summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rwxr-xr-xci/gitlab/trigger_cerbero_pipeline.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/ci/gitlab/trigger_cerbero_pipeline.py b/ci/gitlab/trigger_cerbero_pipeline.py
index 6493a3f6b7..7cccb23c65 100755
--- a/ci/gitlab/trigger_cerbero_pipeline.py
+++ b/ci/gitlab/trigger_cerbero_pipeline.py
@@ -38,26 +38,28 @@ if __name__ == "__main__":
private_token=os.environ.get('GITLAB_API_TOKEN'),
job_token=os.environ.get('CI_JOB_TOKEN'))
- cerbero = None
- cerbero_name = None
+ def get_matching_user_project(project, branch):
+ cerbero = gl.projects.get(project)
+ # Search for matching branches, return only if the branch name matches
+ # exactly
+ for b in cerbero.branches.list(search=cerbero_branch, iterator=True):
+ if branch == b.name:
+ return cerbero
+ return None
+
# We do not want to run on (often out of date) user upstream branch
if os.environ["CI_COMMIT_REF_NAME"] != os.environ['GST_UPSTREAM_BRANCH']:
try:
cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
- cerbero = gl.projects.get(cerbero_name)
- if os.environ["CI_COMMIT_REF_NAME"] in [b.name for b in cerbero.branches.list()]:
- cerbero_branch = os.environ["CI_COMMIT_REF_NAME"]
- else:
- # No branch with a same name on the user cerbero repo... trigger
- # on upstream project
- cerbero = None
+ cerbero_branch = os.environ["CI_COMMIT_REF_NAME"]
+ cerbero = get_matching_user_project(cerbero_name, cerbero_branch)
except gitlab.exceptions.GitlabGetError:
pass
if cerbero is None:
cerbero_name = CERBERO_PROJECT
- cerbero = gl.projects.get(cerbero_name)
cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"]
+ cerbero = gl.projects.get(cerbero_name)
fprint(f"-> Triggering on branch {cerbero_branch} in {cerbero_name}\n")