远程触发(重新)构建 CI Gitlab
Remote trigger for (re)build CI Gitlab
我正在尝试使用远程触发器在 ci.gitlab 中进行(重新)构建。为了解释这一点,我编造了这个场景:
- 2 个存储库,"lib" 和 "app1"
- 只有包含 lib 时,app1 才会成功构建(通过 .gitlab-ci.yml 即可解决)
- 我需要在 lib
提交(或合并请求)时触发 app1 的构建(最好情况下仅针对 master 分支)
我试图使用网络挂钩来解决这个问题,但我无法找到 ci.gitlab.com 的 url。这在gitlab环境下可行吗?
您可以使用新添加的触发器功能来执行此操作。
在您 CI 的项目中,找到 "Triggers" 部分。添加触发器并像这样使用其令牌:
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
确保您在 Gitlab 的 Gitlab 服务设置中选中 Tag push events
选项-CI。
这个解决方案有缺点:
- Gitlab-CI runner 必须对存储库有写入权限,所以它不适用于共享 runners
- git 历史将因所有这些标记而变得臃肿(尤其是 Gitlab UI)
我为此开了一个问题 (https://gitlab.com/gitlab-org/gitlab-ci/issues/223) so let's hope they add this functionality to the API (http://doc.gitlab.com/ci/api/README.html)。
我正在尝试使用远程触发器在 ci.gitlab 中进行(重新)构建。为了解释这一点,我编造了这个场景:
- 2 个存储库,"lib" 和 "app1"
- 只有包含 lib 时,app1 才会成功构建(通过 .gitlab-ci.yml 即可解决)
- 我需要在 lib 提交(或合并请求)时触发 app1 的构建(最好情况下仅针对 master 分支)
我试图使用网络挂钩来解决这个问题,但我无法找到 ci.gitlab.com 的 url。这在gitlab环境下可行吗?
您可以使用新添加的触发器功能来执行此操作。
在您 CI 的项目中,找到 "Triggers" 部分。添加触发器并像这样使用其令牌:
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
确保您在 Gitlab 的 Gitlab 服务设置中选中 Tag push events
选项-CI。
这个解决方案有缺点:
- Gitlab-CI runner 必须对存储库有写入权限,所以它不适用于共享 runners
- git 历史将因所有这些标记而变得臃肿(尤其是 Gitlab UI)
我为此开了一个问题 (https://gitlab.com/gitlab-org/gitlab-ci/issues/223) so let's hope they add this functionality to the API (http://doc.gitlab.com/ci/api/README.html)。