我们可以重新触发 gitlab 管道吗?

use*_*150 9 git jenkins gitlab gitlab-ci

在 GitLab 中创建合并请求后,合并请求失败,并且由于 jenkins 作业下定义的保留期,jenkins 已删除失败的作业日志。现在,我想仅从 gitlab 重新触发特定的合并请求,以便它将触发 jenkins 中的合并请求作业。是否可以 ?如果是,我该如何做同样的事情?

PS 有一个从 Gitlab 到 Jenkins 定义的管道。每当在 gitlab 中创建合并请求时,它都会触发 Jenkins 合并请求作业,该作业将特定更改合并到 git master 分支。

Bak*_*ap4 6

是的,您可以重新触发 Gitlab Pipelines!有两种选择:

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

使用用户界面

  1. 在您的项目中转到CI / CDhttps://gitlab.com/{user/organization}/{project}/pipelines
  2. 然后点击绿色按钮Run Pipeline
  3. 选择您发出合并请求的分支。
  4. 按下Create Pipeline按钮。

这将创建并运行 gitlab 管道。

使用API

  1. 确保您有一个可以使用 Gitlab API 的可用令牌。
  2. 拨打POST电话至gitlab.com/projects/:id/trigger/pipeline
    1. 您可以运行curl命令来执行此操作
    2. curl -X POST -F token=TOKEN -F ref=BRANCHNAME https://gitlab.com/api/v4/projects/7471909/trigger/pipeline
      
      Run Code Online (Sandbox Code Playgroud)
    
    
    Run Code Online (Sandbox Code Playgroud)

如果您想在 Jenkins 中手动触发构建,您还可以结合使用 api 和参数化构建:

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

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

  • 您的建议是重新触发分支管道,而问题则询问有关 MR 管道的问题。两者并不(总是)相同。 (3认同)