summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2022-04-21 10:14:00 -0400
committerThibault Saunier <tsaunier@igalia.com>2022-04-21 12:50:43 -0400
commit956270f3ab7309f5ec02e1eab8093c367a428cc2 (patch)
tree7f011d501927f328760a598e5b9421e6e7ba1bd8 /ci
parentf90916f4bbdbc14975fbbb362dbce13511720881 (diff)
downloadgstreamer-956270f3ab7309f5ec02e1eab8093c367a428cc2.tar.gz
ci: Trigger cerbero on user project if a branch with the same name exists there
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2264>
Diffstat (limited to 'ci')
-rwxr-xr-xci/gitlab/trigger_cerbero_pipeline.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/ci/gitlab/trigger_cerbero_pipeline.py b/ci/gitlab/trigger_cerbero_pipeline.py
index b349146148..1e58604bdc 100755
--- a/ci/gitlab/trigger_cerbero_pipeline.py
+++ b/ci/gitlab/trigger_cerbero_pipeline.py
@@ -8,7 +8,6 @@ import gitlab
CERBERO_PROJECT = 'gstreamer/cerbero'
-
class Status:
FAILED = 'failed'
MANUAL = 'manual'
@@ -36,13 +35,33 @@ def fprint(msg):
if __name__ == "__main__":
server = os.environ['CI_SERVER_URL']
gl = gitlab.Gitlab(server,
- private_token=os.environ.get('GITLAB_API_TOKEN'),
- job_token=os.environ.get('CI_JOB_TOKEN'))
+ private_token=os.environ.get('GITLAB_API_TOKEN'),
+ job_token=os.environ.get('CI_JOB_TOKEN'))
+
+ cerbero = 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:
+ user_cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
+ cerbero = gl.projects.get(user_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"]
+ fprint(
+ f"-> Triggering on branch {cerbero_branch} in {user_cerbero_name}\n")
+ else:
+ # No branch with a same name on the user cerbero repo... trigger
+ # on upstream project
+ cerbero = None
+ except gitlab.exceptions.GitlabGetError:
+ pass
+
+ if cerbero is None:
+ cerbero = gl.projects.get(CERBERO_PROJECT)
+ cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"]
- cerbero = gl.projects.get(CERBERO_PROJECT)
pipe = cerbero.trigger_pipeline(
token=os.environ['CI_JOB_TOKEN'],
- ref=os.environ["GST_UPSTREAM_BRANCH"],
+ ref=cerbero_branch,
variables={
"CI_GSTREAMER_URL": os.environ["CI_PROJECT_URL"],
"CI_GSTREAMER_REF_NAME": os.environ["CI_COMMIT_REF_NAME"],