2017-03-23 9 views
1

を有していない。ジェンキンスグルーヴィー・ポストビルドプラグインsetBuildNumber()のような非常に単純なJenkinsfileを使用して何の効果

echo "Current build number: ${manager.build.number}" 
if (manager.setBuildNumber(1)) { 
    echo "Build number is now: ${manager.build.number}" 
    manager.createSummary("gear2.gif").appendText("<h2>Testing</h2>", false) 
} 

出力は次のとおり

[Pipeline] echo 
Current build number: 3 
[Pipeline] echo 
Build number is now: 3 
[Pipeline] End of Pipeline 

I番号を構築する第2のエコーを期待しますこれは、manager.createSummary()が現在のビルド番号(3)に適用され、意図されたもの(1)に適用されていないことを意味します。

アイデア?私はgroovy-postbuildソースコードを調べましたが、実際にはbuild.getParent().getBuildByNumber(buildNumber)からビルドを取得しているようですが、ヌル以外の値を返していますが、ビルド番号が何であるかにかかわらず現在のビルドが返されているでしょうか?

FWIWでは、GitHub Organizationとマルチブランチプラグインを使用しています。

+0

その質問への答えはあなたを助けるかもしれないhttp://stackoverflow.com/questions/19645430/changing-jenkins-build-number –

+0

私は、リンクで回答/コメントを見ていたし、それらのどれが私の問題を解決するのに役立つのか分かりません。 – Gman

答えて

0

取得するビルドインスタンスは元のビルドです。 「manager」を呼び出すたびに、プラグインは元のビルドで新しいBadgeManagerインスタンスを作成します。

他のビルド(あなたの場合は1)でifブロックアクションを実行するには、同じマネージャインスタンスを使用する必要があります。例えば:

echo "Current build number: ${manager.build.number}" 
def mng = manager 
if (mng.setBuildNumber(1)) { 
    echo "Build number is now: ${mng.build.number}" 
    mng.createSummary("gear2.gif").appendText("<h2>Testing</h2>", false) 
} 
+0

Tidharありがとうございます。これはうまくいくものの、Groovy-Postbuildのドキュメント(https://wiki.jenkins-ci.org/display/JENKINS/Groovy+Postbuild+Plugin)の例はこれに言及していないので、私は少し困惑していますが嬉しいです作品:) – Gman

関連する問題