8 CERBERO_PROJECT = 'gstreamer/cerbero'
20 def is_finished(cls, state):
35 if __name__ == "__main__":
36 server = os.environ['CI_SERVER_URL']
37 gl = gitlab.Gitlab(server,
38 private_token=os.environ.get('GITLAB_API_TOKEN'),
39 job_token=os.environ.get('CI_JOB_TOKEN'))
42 # We do not want to run on (often out of date) user upstream branch
43 if os.environ["CI_COMMIT_REF_NAME"] != os.environ['GST_UPSTREAM_BRANCH']:
45 user_cerbero_name = f'{os.environ["CI_PROJECT_NAMESPACE"]}/cerbero'
46 cerbero = gl.projects.get(user_cerbero_name)
47 if os.environ["CI_COMMIT_REF_NAME"] in [b.name for b in cerbero.branches.list()]:
48 cerbero_branch = os.environ["CI_COMMIT_REF_NAME"]
50 f"-> Triggering on branch {cerbero_branch} in {user_cerbero_name}\n")
52 # No branch with a same name on the user cerbero repo... trigger
55 except gitlab.exceptions.GitlabGetError:
59 cerbero = gl.projects.get(CERBERO_PROJECT)
60 cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"]
62 pipe = cerbero.trigger_pipeline(
63 token=os.environ['CI_JOB_TOKEN'],
66 "CI_GSTREAMER_URL": os.environ["CI_PROJECT_URL"],
67 "CI_GSTREAMER_REF_NAME": os.environ["CI_COMMIT_REF_NAME"],
68 # This tells cerbero CI that this is a pipeline started via the
69 # trigger API, which means it can use a deps cache instead of
70 # building from scratch.
71 "CI_GSTREAMER_TRIGGERED": "true",
75 fprint(f'Cerbero pipeline running at {pipe.web_url} ')
79 if Status.is_finished(pipe.status):
80 fprint(f": {pipe.status}\n")
81 sys.exit(0 if pipe.status == Status.SUCCESS else 1)