3

ci.gitlab での (再) ビルドにリモート トリガーを使用しようとしています。これを説明するために、次のシナリオを作成しました。

  • 2 リポジトリ、「lib」および「app1」
  • app1 は、lib が含まれている場合にのみ正常にビルドされます (.gitlab-ci.yml で簡単に解決できます)。
  • lib のコミット (またはマージ要求) で app1 のビルドをトリガーする必要があります (最善の場合はマスター ブランチのみ)。

Web フックを使って調べてみましたが、ci.gitlab.com の URL を見つけることができませんでした。これはgitlab環境で可能ですか?

4

1 に答える 1

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 ランナーでマシンを管理することを前提としています。まず、メイン リポジトリのクローンを作成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 eventsGitlab-CI の Gitlab Services 設定でオプションがチェックされていることを確認してください。

このソリューションには欠点があります。

  • Gitlab-CI ランナーにはリポジトリへの書き込み権限が必要なため、共有ランナーでは機能しません
  • git履歴は、このすべてのタグ付けで肥大化します(特にGitlab UI)

これに関するイシューを開いたので ( https://gitlab.com/gitlab-org/gitlab-ci/issues/223 )、この機能が API に追加されることを期待しましょう ( http://doc.gitlab.com/ci/ api/README.html )。

于 2015-07-18T19:12:04.777 に答える