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

时间:2015-07-15 08:23:28

标签: gitlab gitlab-ci

我正在尝试远程触发(重新)构建ci.gitlab。为了解释这个,我编写了这个场景:

  • 2个存储库“lib”和“app1”
  • 仅当包含lib时才能成功构建app1(简单地通过.gitlab-ci.yml解决)
  • 现在我需要在lib的提交(或合并请求)上触发app1的构建(仅限于主分支,在最好的情况下)

我试图通过网络连接找出来,但我无法找到ci.gitlab.com的任何网址。通过gitlab环境可以做到这一点吗?

1 个答案:

答案 0 :(得分:3)

您可以使用新添加的触发器功能执行此操作。

在你的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 runner管理机器。首先克隆主存储库app1。在lib的{​​{1}}添加步骤:

.gitlab-ci.yml

确保您在Gitlab-CI的Gitlab服务设置中选中了- 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运行器必须具有对存储库的写权限,因此它不适用于共享运行程序
  • git历史记录会因所有这些标记(尤其是Gitlab UI)而膨胀。

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