远程触发(重新)构建CI Gitlab



我试图使用远程触发器(重新)在ci.gitlab建设。为了解释这一点,我编了这样一个场景:

  • 2库,"lib"one_answers"app1"
  • app1只有在包含lib时才能成功构建(只需通过.gitlab-ci.yml即可解决)
  • 我需要在lib的提交(或合并请求)时触发app1的构建(在最好的情况下,仅针对主分支)。

我试图找出它使用web钩子,但我无法找到ci.gitlab.com的url。这在gitlab环境中可能吗?

您可以使用新添加的触发器功能来完成此操作。

在您的CI项目中,找到"触发器"部分。添加一个触发器并像这样使用它的令牌:

curl -X POST 
 -F token=TOKEN 
 https://ci.gitlab.com/api/v1/projects/{project_id}/refs/REF_NAME/trigger

(https://about.gitlab.com/2015/08/22/gitlab-7-14-released/)

过时:

我们有同样的问题,我们解决它的方法是通过推送和随后删除一个标签。

假设您使用Gitlab-CI运行器管理机器。首先,克隆主存储库app1。在lib.gitlab-ci.yml中增加以下步骤:

- cd /path/to/app1_repository
- git pull
- git tag ci-trigger master
- git push origin ci-trigger
- git push --delete origin ci-trigger
- git tag -d ci-trigger

确保在Gitlab- ci的Gitlab Services设置中选中了Tag push events选项。

这个解决方案有缺点:

  • Gitlab-CI运行程序必须具有对存储库的写权限,因此它不能用于共享运行程序
  • git的历史记录会因为这些标签而变得臃肿(尤其是Gitlab UI)

我为此打开了一个问题(https://gitlab.com/gitlab-org/gitlab-ci/issues/223),所以让我们希望他们将此功能添加到API (http://doc.gitlab.com/ci/api/README.html)。

最新更新