2017-03-16 8 views
0

gitlab-runnerマシンを持つgitlabに3つのプロジェクトA、B、Cがあります。プロジェクトAは、上のコミットがある場合には、プログラムを構築するためのスクリプトを呼び出しgitlab-ci.ymlファイルが含まれていますコミットが別のプロジェクトにプッシュするときにプロジェクトでビルドを起動する

build: 
    stage: build 
    script: 
    - ./build-platform.sh 

AはBとCのプロジェクトに依存します。 BやCにコミットがあったときにAのビルドをトリガするにはどうすればいいですか?私はB、CをAに入れることはできませんし、build-platform.shをgitlab-ci.ymlファイル構文に簡単に変換できません。

答えて

4

あなたが望むことをするにはいくつかの方法がありますが、それらはすべてgitlabでAの設定をプロジェクトし、トリガートークンを追加することに依存しています。これは、<project A's gitlab URL>/settings/ci_cdページのAdd triggerトリガーセクションでクリックして行います。

また、そのページからそのトリガートークンを使用するさまざまな方法があります。完全を期すために

は、ここに挙げる方法のうちのいくつかです:

1 cURLの

を使用して、あなたがプロジェクトBまたはCのビルドの最後にカールを使用することができます場合は、単純に以下を追加:TOKENは、あなただけのプロジェクトAとREF_NAME用に生成トリガートークンです

curl -X POST \ 
    -F token=TOKEN \ 
    -F ref=REF_NAME \ 
    <gitlab_url>/api/v3/projects/1/trigger/builds 

はのためのビルドを実行するためのブランチやタグの名前です。

これは、プロジェクトBとCの自動ビルド(たとえば、.gitlab-ci.ymlファイルを使用)がある場合に実行できます。あなたはこれらのプロジェクトの設定/統合ページからプロジェクトBとCにウェブフックを追加できるウェブフック

を使用して

2。 TOKENとREF_NAMEは上記と同じである

<gitlab_url>/api/v3/projects/1/ref/REF_NAME/trigger/builds?token=TOKEN 

は、単にプッシュイベントに以下のウェブフックを追加します。

関連する問題