2012-10-09 11 views
6

現在、Jenkinsビルドの結果を取得する簡単なプラグインを開発中です。私は通知を拡張し、build.getResults()を使用して情報を取得しています。しかし、私がプラグインをアップロードすると、ポストビルドアクションとして設定することはできません。
私のビルドを実行すると、ビルドが実行中に結果を取得しようとしているので、それらはbuild.getResults()に壊れてしまいます。

ビルド結果を正しく取得するにはどうすればよいですか?
Jenkinsポストビルドプラグインの開発

答えて

1

これはとても簡単なので、プラグインが必要ですか?代わりにGroovy Postbuild stepを使用してみてください。彼らは書くのがはるかに簡単です。リンクにはいくつかの良い使用例があります。プラグインが本当に必要だと判断した場合は、独自のプラグインを作成するのではなく、既存のプラグインを拡張できるかどうかを確認してください。それはJenkinsのプラグインの書き方を理解する簡単な方法です。

+0

私は、(Coverity Connect 6.5.3で公開されている)安全なWebサービスを呼び出すためにGroovy Postbuildプラグインを使用していて、PermGen(JDK 1.7アップデート15)を使い果たしているJenkins JVM全体に問題がありました。今まで、Groovy Postbuildプラグインは、SonarQubeのRESTサービスを呼び出すためにうまくいきました。要約すると、Groovy Postbuildプラグインには制限があることに注意してください。 – buzz3791

+0

この回答は、既存のプラグインの使用を提案する前に、これを行う方法の例を提供する必要があります。 –

+0

@JohnZeller私が提供したリンクにはたくさんの使用例がありますが、私はそれを明確にする答えを編集しました。 –

2

ベストは、existing plugins which use Notifier extension point(クリックして展開プラグインリストをご覧ください)です。

Descriptorのインプリメンテーション(内部)クラスとconfig.jellyがあることを確認してください。また、jenkins.outおよびjenkins.errのログで、例外(不正なconfig.jellyなど)がないかどうかを確認します。

編集:通知機能が行くように実際には、このプラグインの通知サブクラスは本当に簡単になります。https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin、特にそのGamePublisher.javaconfig.jelly対応を見て、それは(多くの場合、記述子は内部クラスである)完全外部クラスを作ってきたGameDescriptor.java、です。また、Jenkinsのグローバル設定にオプションが必要な場合は、global.jellyが必要ですが、そのようなオプションがない場合は、除外できるものです(config.jellyとは異なり、Notifierの場合でも必須です)。空、ここのように)。

一般的な注意として、実際にはうまくいきません。何もエラーがなくても、あなたのものは単にJenkinsによって表示されません。 Groovyのビルド・ステップを使用する方が簡単かもしれませんが、他の人のために機能するようにするには、まともなフル・プラグインを使用してサポート要求を減らしてください。

関連する問題