12

エンジニアリング グループのビルド プロセスを自動化しようとしています。その自動化の一環として、パターンに準拠する特定のタグを適用する行為が、次のことを行う自動化されたプロセスを開始するところまで到達しようとしています。

  • ソースコードを確認する
  • テンプレートからビルド スクリプトを作成する
  • プロジェクトをビルドする

私はSubversionのポストフックでこれを行うことができると確信していますが、Subversionフック以外のものでこれを行う方法を見つけようとしています.

  • ワークフローを開始するために Subversion リポジトリのタグ ディレクトリを監視することは理にかなっていますか?
  • これに役立つ適切なツールはありますか (可能であれば .NET が最適です)。
  • これを行うためのエンジンを作成した方がよいでしょうか?

私の好み:

  • このすべてまたは一部を実行する既存の製品
  • 開発作業が必要な場合は、.NET が望ましい
  • Windows で動作します (Linux ベースのリポジトリがありますが、ビルドはすべて Windows で行われます)
4

8 に答える 8

8

ハドソンを使用してこれを行いました。通常の Subversion チェックアウト スロットには、トランクのチェックアウトがあります。

http://dryad.googlecode.com/svn/trunk/dryad

次に、最初のビルド アクションとして、「シェルの実行」を行い、そのシェルで svn スイッチを使用して、リポジトリ内の最新のタグに変更します。

svn スイッチhttp://dryad.googlecode.com/svn/tags/ 'svn ls http://dryad.googlecode.com/svn/tags | tail -n 1' ドライアド

次のビルド ステップは、タグ付けされたバージョンのコードを使用してビルドを開始する Maven の「クリーン インストール」コマンドです。

Hudson を最新のタグ付けされたバージョンで開始する方法をまだ理解していませんが、切り替えは機能します。その後、タグ ディレクトリが更新されたときにトリガーを設定できます。

それは自動化されています...ちょっと面倒ですが、うまくいきます...

スイッチには 2 番目の svn コマンドのバックティックを含める必要がありますが、バックティックがここに表示されなかったため、' を使用する必要がありました。

于 2010-05-07T20:26:04.837 に答える
5

私はhudsonが好きです- セットアップが簡単で、SVN でそのまま使用できます。

すべてのコミットでビルドするように構成できます。

私はそれをダウンロードし、1 日以内に構築を開始しました。多くの調整を経てきましたが、誰にでもお勧めします。

クルーズコントロールも使用しましたが、それほど満足していません。クロスプラットフォームの問題以外に特別な理由はありません。

編集

最近、hudson ビルド サーバーに、Google/Gmail のジャバー チャットをリッスンするジョブを追加しました。このメカニズムを使用して、「通常の」ビルドをリリース ビルドに「昇格」できます。プライベート ビルドをリリース候補に昇格/公開するために必要な手順を実行する新しいジョブを設定しました。

于 2010-05-07T20:42:46.153 に答える
3

CruiseControl.Netは、Subversion リポジトリからの自動ビルドを簡単に自動化できます。

リポジトリ (Svn およびその他のいくつかのタイプ) を監視し、さまざまなツールを使用して自動ビルドを開始できます。(NAnt、MSBuild など)

于 2009-02-07T14:08:58.210 に答える
2

このサイトでは、まさにこの目的のために商用製品が宣伝されています。

http://www.finalbuilder.com/Default.aspx?tabid=314

タイム スケジュールで実行する場合を除き、SVN にポストフックを追加してビルド開始をトリガーする必要がある場合があります。

于 2009-02-06T19:55:04.423 に答える
2

これにはハドソンもお勧めします。私は似たようなことをしてタグを作成し、ビルドを開始することを検討していました。代わりに、hudson 用に次のプラグインを使用することにしました。

http://wiki.hudson-ci.org/display/HUDSON/Release+Plugin

これを使用して、タグの作成と明示的なリリース ビルドを推進します。

于 2011-02-03T19:40:46.560 に答える
1

自動ビルドにNAnt(およびNAntContrib )を使用しています。Subversionリポジトリに変更がないか自動的にチェックし、(存在する場合は)最新のソースコードバージョンを取得してビルドを開始します。

既存のタスクがあなたが望むことを正確に実行できるかどうかはわかりませんが、おそらくそれを出発点として使用し、必要に応じて、特別なニーズに合わせてタスクを拡張することができます(.NETで開発されています)。

于 2009-02-06T20:04:15.903 に答える
1

他の人が言ったように、継続的な統合サーバー (CruiseControl、CruiseControl.Net、Hudson など) が必要です。説明した機能を実行するためにビルド スクリプトとコミット フックを作成することもできますが、最終的には車輪 (Continuous Integration Server) を再発明したことになります。その必要はありません。この目的のためだけに無料で利用できるソリューションがあります。

このプロセスは、上記で説明したものとは少し異なります。ビルド サーバーは次のことを行います。

  1. 新しいコミットを検出する
  2. ソースコードをチェックアウトする
  3. ビルド スクリプトを実行する
  4. 成功したビルドにタグを付ける

コミットはプロセスをトリガーし、プロセスをトリガーするタグではなくタグを作成します。サーバーは、コミットフックではなく、svn リポジトリを監視してこれを行います。

このテーマに関する CruiseControl.Net のドキュメント、特にオプション tagOnSuccess および tagBaseUrl を確認してください。Hudson と CruiseControl には同様のオプションが必要です。

http://confluence.public.thoughtworks.org/display/CCNET/Subversion+Source+Control+Block

于 2009-08-06T21:18:47.600 に答える