我们在GitLab CE上有一个应用程序(简称为dog
仓库),该应用程序具有生产构建和部署管道,仅在部署标签时才会触发。这是在cat
中通过以下方式实现的:
main
我们还有另外两个存储库(简称为.gitlab-ci.yml
)(例如,翻译和实用程序)。我想要实现的是,当其他两个only:
- /^v.*$/
except:
- branches
存储库的主分支中的任何一个收到推送时,重新运行最新的{semver}标签的side
管道。一个小细节是其中一个存储库位于GitHub上,但我很乐意让它们首先在GitLab上工作,然后再从那里工作。
我想我需要使用GitLab API来触发管道。我目前在GitLab上为main
回购设置的是用于推送事件的webhook集成:
side
,其中side
是https://gitlab.com/api/v4/projects/{{ID}}/ref/master/trigger/pipeline?token={{TOKEN}}
项目的ID,而ID
是该项目的部署令牌。
但是,这只会触发main
存储库的主管道。我如何才能(又)重新运行最新标签的管道(或最新的 tagged 管道)?
第二,我该如何在GitHub上触发它?
答案 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.*$/
的管道可能与您所需的特定版本不匹配。