1

Hudsonで、作成するビルドのタイプ(QA、ステージ、プロダクション)の1つのパラメーターのみを受け取るパラメーター化されたビルドをセットアップしたいと思います。ただし、これらの各ビルドでは、いくつかの異なる環境変数を設定する必要があります。(擬似コード)のようなもの:

if ${CONFIG} == "QA" then
    ${SVN_PATH} = "branches/dev"
    ${BUILD_CONFIG} = "Debug"
    # more environment variables...
else if ${CONFIG} == "Production" then
    ${SVN_PATH} = "trunk"
    ${BUILD_CONFIG} = "Release"
    # more environment variables...
else # more build configurations...
end if

ビルドには無数のステップがあります。subversionからプルしてから、MSBuildコマンド、DOSバッチファイル、およびPowershellスクリプトの組み合わせを実行します。

通常、ビルドはHudsonインターフェースからスケジュールしますが、パラメーターエントリをできるだけばかげたものにしたいと思います。

これを行う方法はありますか?

4

2 に答える 2

6

リリースでは非常に多くのことを行うので、Hudson以外のすべてのステップをスクリプト化してはどうでしょうか。ant、バッチファイル、または任意のスクリプト言語を使用できます。そのスクリプトをscmに入れて、リビジョン管理を取得します。

プロの:

  • Hudsonはスクリプトを呼び出すだけなので、Hudsonからロジックを取得します。
  • シェル間で永続化する必要のある環境変数(グローバル変数)を作成する必要はありません。
  • すべての環境でconfig/propertiesファイルを使用できます。これもバージョン管理に入れる必要があります
  • 必要に応じて、これらのスクリプトをHudsonの外部で実行できます。
  • ハドソンのジョブ設定が簡単になります
  • グローバル環境変数を変更するという副作用はありません。常に問題が発生するため、グローバル設定を変更しないジョブを常に作成するようにしてください。
于 2010-12-03T12:36:37.373 に答える
2

Hudsonはビルドパラメーターをサポートします。ビルドパラメーターは、Hudsonがビルドステップで環境変数として使用できるようにするビルド時変数です(Hudson Parameterized Build wikiページを参照)。あなたの仕事ではCONFIG、ユーザーが入力する1つの選択パラメーターを持つことができます。(パラメーターを設定するには、ジョブの構成で、[このビルドはパラメーター化されています]を選択します。)

次に、基本的に、ビルドステップの開始時に疑似コードでコーディングしたものを記述できます。または、複数の手順があるため、既存のビルドスクリプトから参照されるファイルに環境設定を配置します。(シェルによっては、スクリプトで設定された変数を親環境にエクスポートするためのさまざまなトリックがあります。)既存のビルドスクリプトと統合されたファイルにセットアップを配置すると、管理とテストがはるかに簡単になります(つまり、外部でテスト可能です)。ハドソンの)だけでなく、ローカルでスクリプトを呼び出す簡単な方法を提供します。

また、統合ビルドを、説明した各構成を実行する個別のジョブに分割することを検討することもできます。中央のビルドスクリプトを参照している場合でも、CONFIG定義したタイプは、別個のアクションであり、別個のジョブに値する必要があるように見えます。

于 2010-12-03T01:49:30.630 に答える