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

Remote trigger for (re)build CI Gitlab

我正在尝试使用远程触发器在 ci.gitlab 中进行(重新)构建。为了解释这一点,我编造了这个场景:

我试图使用网络挂钩来解决这个问题,但我无法找到 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)。