web-dev-qa-db-ja.com

ジェンキンス(ハドソン)の仕事を別の仕事に依存させる

私には2つの仕事があります。

  1. アップロード
  2. 起動インスタンス

Launch-instanceを他の依存関係に依存させ、Launch-instanceをトリガーすると自動的にUploadが最初に実行されます。

組み込みのJenkins機能またはプラグインを使用してこれを実現できますか?

私はnotを必要とすることに注意してください==Upload常にトリガーするLaunch-instance、これは「 Launch-instanceの[他のプロジェクトがビルドされた後にビルドする]オプションで実行できます。私が欲しいのはもっとdepends属性が Antでどのように機能するかに類似しています。

21
Jonik

パラメータ化されたトリガープラグイン を試しましたか?

これをビルドステップとして使用し、「トリガーされたプロジェクトがビルドを完了するまでブロックする」のチェックボックスをマークできます。それはまさにあなたが探しているものでなければなりません。

25
pushy

ああ、見つけた!ここで私はmiki's answerに基づいて構築しています。これは方法を示しましたが、これを完全に解決しませんでした。

Hudsonビルドの起動に関するスペイン語の記事で述べられているように、Hudsonのコメントからリンクされていました リモートアクセスAPIページ mikiのリンク先:

En lasección "Build Triggers" [...] marcamos laopción "Trigger builds remotely(from、fromスクリプト)」。 Al marcar estaopciónvemos como aparece el cuadro de texto "Authentication Token"。 Aquípondremos el nombre del token deautenticación。

alt text
(ソース: adictosaltrabajo.com

(スペイン語を知っていることの利点は具体化し始めているようです... :-)

そのため、Hudsonはビルドをリモートでトリガーするための便利な組み込みオプションを提供します。 Build Triggersセクション(Uploadジョブの場合)では、リモートビルドを有効にし、認証トークンを設定します(上のスクリーンショットを参照)。次に、そのトークンを含む特定のURLにアクセスしてビルドを起動できます。私の場合、Launch-instanceの最初のビルドステップは次のようになります。

wget http://[hudson-url]/job/Upload/build?token=TEST
sleep 10

これは、匿名ビルドが無効になっている場合でも機能し、単にビルドURLにアクセスしようとすると "403 Forbidden"になります。

5
Jonik

Wgetを介して依存ジョブを実行することは、一般的な解決策ではありません。ジョブは非同期で実行されるため、起動ジョブはハングせず、アップロードジョブが完了するまで待機しません。スリープの使用は汚いハックであり、ほとんどの場合オプションではありません...私見の最善の解決策は以下を使用することです: http://wiki.jenkins-ci.org/display/JENKINS/Join+Plugin

2
user62058

最初のビルドステップとしてwgetを使用して ビルドURL を呼び出してUploadをビルドするのはどうですか?次に、Launch-instanceのビーフビルドステップを追加します。

または、より洗練されたアプローチの場合は、おそらく リモートアクセスAPI を使用します。

1
miki

ダウンストリームまたはアップストリームの依存関係を使用できます。 「ビルドトリガー」->他のプロジェクトがビルドされた後にビルドするか、プロジェクトの構成部分でビルド後のアクションを使用する必要があります。

0
khmarbaise