我正在尝试在ci.gitlab中使用远程触发器进行(重新)构建。为了解释这一点,我想出了以下情景:
- 有两个仓库,“lib”和“app1”
- 只有在包含lib时,app1才能成功构建(通过 .gitlab-ci.yml 简单解决)
- 我需要在lib提交(或合并请求)时触发app1的构建(仅适用于主分支,最好的情况下)
我尝试使用web hook来解决这个问题,但是我没有找到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 runner管理机器。首先,为您克隆主仓库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
Tag push events
,以便于 Gitlab-CI 使用。