6

ジェンキンスのビルド番号を自動的に、またはシェルスクリプトを使用して増やす方法は?? 今のところ、構成オプションを使用して同じことを行っており、手動で増やしています。自動でやりたい。

4

1 に答える 1

22

あなたが求めていること (つまり、複数のジョブ間でビルド番号を同じに保つこと) は、Jenkins ではまったく不可能です。これは設計によって行われます (Jenkins の作成者自身が指摘したように): "[JENKINS] assumes that the build number is unique and monotonic.". より高い値に変更することはできますが、同じ数に変更すると Jenkins が完全に壊れてしまうため、変更することはできません。

ビルド実行番号はまさにそれです:実行番号です。
シーケンシャルであると想定されます。バージョン番号で
はありません。

ただし、ビルド履歴にバージョン情報を取得する方法はいくつかあります。

説明 セッタープラグイン
私が使っているものです。ビルド番号は変更されませんが、自動的に行われる説明がさらに、これは説明なので、いつでも手動で変更することもできます。

これはどのように見えるかです: buildと実際には同じバージョンを持っていることに
説明 セッターのビルド番号
注意してください。 そのバージョン文字列で、はプロジェクト プロパティによって決定される現在のリリース番号ですが、は実際にはビルド変数から取得された SVN リビジョン番号です。そのため、SVN に新しいコミットがあるたびに、新しいリビジョン番号を取得します。しかし、コミットがなく、なんらかの理由でジョブが再構築された場合 (および のように) 、コードの変更がないため、バージョン番号は同じままです。#50#511.3.0.394376
1.3.0394376$SVN_REVISION_1#50#51

私が設定した方法は次のとおりです。

  • 説明設定プラグインのダウンロード
  • Build Stepsのどこかに、バージョンを出力します *
  • 私は単に持っています:
    echo Version is: ${internalVersionNumberFromWherever}.${SVN_REVISION_1}
  • 次のセットアップビルドの説明を設定したビルド後のアクション
  • コンソールからバージョン番号を抽出する 正規表現をセットアップします。Version is: (.*)
  • 他のすべてを空白のままにすると、正規表現が取得したものが(.*)説明として使用されます。
  • または、さらに説明テキストを として設定することもできますBuild - \1。正規表現からの\1最初のグループへの参照(.*)です。
  • ビルド履歴からビルド実行を選択し、右側の「説明の編集」リンクをクリックすることで、実行の説明をいつでも手動で変更できます (ユーザーに「更新」権限が構成されている場合)。

* バージョン テキストを出力するステップの前にビルドが失敗した場合、説明セッター プラグインはそれを取得できないことに注意してください。常にバージョンを表示したい場合は、最初のステップとしてバージョン番号の表示を設定します。

Build Name Setter プラグイン
このプラグインは実際にビルド番号を変更します。
ここに画像の説明を入力
ただし、各ビルド番号は一意でなければならないという制限に注意してください。
それを確実にする最善の方法は、${BUILD_NUMBER}必要な任意の数に追加することです (上の画像のように)。このようにして、ビルド番号を次のよう50.123に、バージョン50.124はどこにあり、ビルド実行番号は連続しており、Jenkins は一意の番号を確実に保持します。50123124${BUILD_NUMBER}

最後に、私が個人的に試したことのないVersion Number プラグインがありますが、役に立つかもしれません。

于 2014-03-27T15:09:26.670 に答える