我们可以重新触发GitLab流水线吗?

9
在GitLab中创建合并请求后,合并请求失败了,由于在Jenkins作业下定义了保留期,Jenkins已经删除了失败的作业日志。现在,我只想从GitLab重新触发该指定合并请求,以便它将触发Jenkins中的合并请求作业。这是可能的吗?如果是,我如何做到这一点?
附注:GitLab和Jenkins之间存在一个管道。每当在GitLab中创建合并请求时,它会触发Jenkins合并请求作业,该作业会将特定更改合并到git主分支中。

你想触发GitLab管道还是Jenkins管道?你是否定义了一个.gitlab-ci.yml文件,并在其中定义了一个触发Jenkins的作业? - Baklap4
2个回答

5

是的,你可以重新触发Gitlab管道!共有两种选项:

  1. 使用UI界面
  2. 使用Gitlab API

使用UI界面

  1. 在项目中前往 CI / CD: https://gitlab.com/{user/organization}/{project}/pipelines
  2. 然后点击绿色按钮 Run Pipeline
  3. 选择合并请求所在分支。
  4. 点击 Create Pipeline 按钮。

这将创建和运行一个Gitlab管道。

使用API

  1. Make sure you have a token available which can use the Gitlab API.
  2. Make a POST call to gitlab.com/projects/:id/trigger/pipeline
    1. You can run a curl command to do this
    2. curl -X POST -F token=TOKEN -F ref=BRANCHNAME https://gitlab.com/api/v4/projects/7471909/trigger/pipeline
      
    
    
如果你想在Jenkins中手动触发构建,你可以结合参数化构建使用API来实现:

远程访问API

curl -X POST JENKINS_URL/job/JOB_NAME/build --user USER:TOKEN  --data-urlencode json='{"parameter": [{"name":"branch", "value":"master"}]}'

该参数将是要构建的分支;例如,您合并请求的分支。

如果您能够为用户构建链接,您可以创建一个指向{project url}/pipelines/new?ref={branch}的链接,这样用户只需点击“运行管道”即可触发该分支的管道。 - Matruskan
2
您的建议是重新触发分支管道,而问题是关于 MR 管道的。这两者并不总是相同的。 - Kristóf Steindl

2
  1. 前往合并请求页面。
  2. 在选项卡部分(位于概述旁边),进入 Pipelines 选项卡。
  3. 单击 运行管道 按钮。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接