2016-07-01 5 views
2

私はパイプラインジョブをいくつかのステージから構成し、それぞれに数時間かかります。 パイプライン処理を行う前に、各ステージは独自のジョブであり、そのうちのいくつかにはHeavy Job Pluginを使用していました。これで、 "properties"コマンドで "HeavyJobProperty"を指定できるようになりました。私はthis questionのおかげでその構文を正しく得ることができました。パイプラインジョブでJenkins Heavy Job Propertyを使用する方法

私のパイプラインのスクリプトが好きにこのなります。スクリプトを実行するとき

node ('<label>') { 
    ws ('<mydir>') { 
     // Mark the code checkout 'stage'.... 
     stage 'Checkout' 

     git url: '<repourl>' 

     stage 'Build' 
     properties ([[$class: 'HeavyJobProperty', weight: 8]]) 

     sh '<mybuild>' 
    } 
} 

残念ながら、これは動作するようには思えない、私はメッセージを取得する:

ERROR: cannot apply hudson.plugins.heavy_job.HeavyJobProperty to a WorkflowJob

誰もがアイデアを持っていますがどのように私はこれを働かせる?

パイプライン文書でHeavyJobPropertyが表示されていても、プラグインは単純にまだパイプライン作業に適応していないように見えます。

答えて

3

は重い仕事行列プラグインは、パイプラインプラグインと互換性がありません、またそれはあなたが古いビルドの仕事を続けることができ、仕事の周りのよう

https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.mdを参照)、それを要求する未解決の問題を持っていないあなたあなたのパイプラインから持ってきてください。

あなたが探しているパイプラインのステップは「ビルド」です。スニペットジェネレータを使用すると、保存する必要があるパラメータを含めて、呼び出すための構文を生成できます。

パイプラインと同じワークスペースが必要な場合は、呼び出しているジョブをパイプラインジョブのワークスペースを使用するように構成できます。 「一般」見出しの「詳細」セクションで作業領域を設定することができます。 「カスタムワークスペースを使用する」

その解決策の警告:1)重い仕事はもはや独立していません。 2)複数のノードがあるとうまくいかないと思う。

+0

プラグインをインストールし、「プロパティ」コマンドの「パイプライン構文」のドキュメントを見ると、「$ class: 'HeavyJobProperty'」のドキュメントが表示されます。それで、私はプラグインが互換性があると結論づけました。または、パイプライン構文がプラグインを自動的にピックアップしますか? – olenz

+0

私は、パイプライン構文が自動的にコード内の正しいインターフェースを実装するものを選択すると思います。私の推測では、偶然インターフェイスを実装することが起こり、互換性があるかどうかを確認するために何もしていないということです。 ロードしても動作しない例として、私は最近、gradleプラグインをハックしてパイプライン構文で動作させようとしていますが、正しくロードされてもまだ変更されませんビルドのステータスは必要です。 –

+0

私は時間を見つけたら、プラグインをパイプライン化に適応させようとします。ありがとう、サム! – olenz

関連する問題