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

Continuous integration GitLab管道触发器:重新运行最新标记的管道,continuous-integration,gitlab-ci,gitlab-api,Continuous Integration,Gitlab Ci,Gitlab Api,我们在GitLab CE上有一个应用程序(我们称之为mainrepo),它有一个生产构建和部署管道,只有在部署标记时才会触发。这可以通过以下方式在.gitlab ci.yml中实现: only: - /^v.*$/ except: - branches 我们还有另外两个(我们称之为侧)存储库(例如翻译和util)。我想要实现的是,当其他侧存储库的主分支接收到推送时,重新运行最新(semver)标记的main管道。一个小细节是其中一个存储库在GitHub上,但我很乐意让它们先在GitLa

我们在GitLab CE上有一个应用程序(我们称之为
main
repo),它有一个生产构建和部署管道,只有在部署标记时才会触发。这可以通过以下方式在
.gitlab ci.yml
中实现:

only:
  - /^v.*$/
except:
  - branches
我们还有另外两个(我们称之为
)存储库(例如翻译和util)。我想要实现的是,当其他
存储库的主分支接收到推送时,重新运行最新(semver)标记的
main
管道。一个小细节是其中一个存储库在GitHub上,但我很乐意让它们先在GitLab上工作,然后再从那里开始工作

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

然而,这只会触发我们的
main
repo的主管道。我怎样才能(同时)重新运行最新标记的管道(或最新标记的管道)


其次,我如何在GitHub上触发它?

或者您可以创建新的管道,指定
ref
哪些可以是分支或标记,因此在这种情况下,您需要知道确切的标记值


或者,您可以通过提供其
id
来重试已执行的管道,您可以通过按
id
排序和按
ref
过滤来获取该管道,但它将为您提供最后一个管道,该管道带有一个标记
/^v.*$/
,该标记可能与您需要的特定版本不匹配。

我认为任何最后运行的管道都匹配
/^v.*$/
将非常适合我们的用例;现在就开始测试