diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2022-07-16 11:02:51 +0530 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2022-07-16 06:16:17 +0000 |
commit | 885d4b84a57d0b3363faf47a168f6dbb57137aa6 (patch) | |
tree | d7f150036bc5e6971760b4c032b012131e7c8202 /ci | |
parent | 41bf3f6c1be72cc2581c929e9b587598f958eda0 (diff) | |
download | gstreamer-885d4b84a57d0b3363faf47a168f6dbb57137aa6.tar.gz |
ci: Fix project URL when triggering cerbero pipelines
When merge request pipelines are triggered on the gstreamer namespace,
CI_PROJECT_URL will be gitlab.[...]/gstreamer/gstreamer but we need to
use gitlab.[...]/$USER/gstreamer because that's where the source
branch is located.
This exhibits as cerbero pipelines failing because it can't find the
specified branch:
https://gitlab.freedesktop.org/gstreamer/cerbero/-/pipelines/639379
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/gitlab/trigger_cerbero_pipeline.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/ci/gitlab/trigger_cerbero_pipeline.py b/ci/gitlab/trigger_cerbero_pipeline.py index 1e58604bdc..6493a3f6b7 100755 --- a/ci/gitlab/trigger_cerbero_pipeline.py +++ b/ci/gitlab/trigger_cerbero_pipeline.py @@ -39,15 +39,14 @@ if __name__ == "__main__": job_token=os.environ.get('CI_JOB_TOKEN')) cerbero = None + cerbero_name = 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) + 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"] - 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 @@ -56,15 +55,29 @@ if __name__ == "__main__": pass if cerbero is None: - cerbero = gl.projects.get(CERBERO_PROJECT) + cerbero_name = CERBERO_PROJECT + cerbero = gl.projects.get(cerbero_name) cerbero_branch = os.environ["GST_UPSTREAM_BRANCH"] + fprint(f"-> Triggering on branch {cerbero_branch} in {cerbero_name}\n") + + # CI_PROJECT_URL is not necessarily the project where the branch we need to + # build resides, for instance merge request pipelines can be run on + # 'gstreamer' namespace. Fetch the branch name in the same way, just in + # case it breaks in the future. + if 'CI_MERGE_REQUEST_SOURCE_PROJECT_URL' in os.environ: + project_url = os.environ['CI_MERGE_REQUEST_SOURCE_PROJECT_URL'] + project_branch = os.environ['CI_MERGE_REQUEST_SOURCE_BRANCH_NAME'] + else: + project_url = os.environ['CI_PROJECT_URL'] + project_branch = os.environ['CI_COMMIT_REF_NAME'] + pipe = cerbero.trigger_pipeline( token=os.environ['CI_JOB_TOKEN'], ref=cerbero_branch, variables={ - "CI_GSTREAMER_URL": os.environ["CI_PROJECT_URL"], - "CI_GSTREAMER_REF_NAME": os.environ["CI_COMMIT_REF_NAME"], + "CI_GSTREAMER_URL": project_url, + "CI_GSTREAMER_REF_NAME": project_branch, # This tells cerbero CI that this is a pipeline started via the # trigger API, which means it can use a deps cache instead of # building from scratch. |