我试图使用远程触发器(重新)在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)。