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

标签 git jenkins gitlab gitlab-ci

在 GitLab 中创建 merge 请求后, merge 请求失败,由于 jenkins 作业下定义的保留期,jenkins 删除了失败的作业日志。现在,我想仅从 gitlab 重新触发该特定 merge 请求,以便它将触发 jenkins 中的 merge 请求作业。是否可以 ?如果是,我该怎么做?

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

最佳答案

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

  • 使用用户界面
  • 使用 Gitlab Api

  • 使用用户界面
  • 在您的项目中转到 CI / CD :https://gitlab.com/{user/organization}/{project}/pipelines
  • 然后点击绿色按钮Run Pipeline
  • 选择您提出 merge 请求的分支。
  • 点击 Create Pipeline按钮。

  • 这将创建并运行 gitlab 管道。

    使用 API
  • 确保您有 token可用,可以使用 Gitlab API。
  • 做个 发布 调用 gitlab.com/projects/:id/trigger/pipeline
  • 您可以运行 curl 命令来执行此操作
  • curl -X POST -F token=TOKEN -F ref=BRANCHNAME https://gitlab.com/api/v4/projects/7471909/trigger/pipeline
    
  • 
    

    如果要触发 build manually在 Jenkins 中,您还可以将 api 与参数化构建结合使用:
    curl -X POST JENKINS_URL/job/JOB_NAME/build --user USER:TOKEN  --data-urlencode json='{"parameter": [{"name":"branch", "value":"master"}]}'
    

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

    关于git - 我们可以重新触发 gitlab 管道吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54343432/

    相关文章:

    Git:大项目开发流程的最佳实践

    jenkins - 如何从 Jenkins 获取作业名称

    Gitlab CI 不适用于 Gitlab Registry 中的私有(private)图像

    linux - 在 Gitlab 实例之间迁移 repos

    git - Git 有白名单功能吗?

    git - BONOBO GIT 服务器登录返回同一页面

    github - 如何让 Jenkins 自动为流水线作业添加 webhook?

    gitlab - 如何在本地触发Gitlab CI构建?

    git - 现有的 Emacs 模块缺少哪些功能可以与 git 一起使用?

    c# - 如何在 MSTest 的测试执行期间添加非测试方法作为测试?