GitLab管道触发器:重新运行最新的标记管道

时间:2019-04-20 08:57:22

标签: continuous-integration gitlab-ci gitlab-api

我们在GitLab CE上有一个应用程序(简称为dog仓库),该应用程序具有生产构建和部署管道,仅在部署标签时才会触发。这是在cat中通过以下方式实现的:

main

我们还有另外两个存储库(简称为.gitlab-ci.yml)(例如,翻译和实用程序)。我想要实现的是,当其他两个only: - /^v.*$/ except: - branches 存储库的主分支中的任何一个收到推送时,重新运行最新的{semver}标签的side管道。一个小细节是其中一个存储库位于GitHub上,但我很乐意让它们首先在GitLab上工作,然后再从那里工作。

我想我需要使用GitLab API来触发管道。我目前在GitLab上为main回购设置的是用于推送事件的webhook集成: side,其中sidehttps://gitlab.com/api/v4/projects/{{ID}}/ref/master/trigger/pipeline?token={{TOKEN}}项目的ID,而ID是该项目的部署令牌。

但是,这只会触发main存储库的主管道。我如何才能(又)重新运行最新标签的管道(或最新的 tagged 管道)?

第二,我该如何在GitHub上触发它?

1 个答案:

答案 0 :(得分:1)

您都可以创建新的管道,指定ref可以是分支或标签,因此在这种情况下,您需要知道确切的标签值https://tools.ietf.org/html/rfc5322#page-21

或者您可以通过提供其id重试已执行的管道,该管道可以从https://docs.gitlab.com/ee/api/pipelines.html#create-a-new-pipeline获取,方法是按id排序并按ref进行过滤,但是它将给出您最后一个带有标签/^v.*$/的管道可能与您所需的特定版本不匹配。