私が現在取り組んでいるプロジェクトでは、SubversionとCVSの両方を使用しています。開発者は通常、コードを作成してCVS/Subversionにチェックインします。コーディングSubversionとCVSとの継続的な統合
が完了し、すべてがテストラベルを使用してリポジトリにタグを付け、テストラベルを使用してチェックアウトしたコードを使用して、正式なテストを行って、私たちにチェックされています。上記の最後のリリース+新しいリビジョンのファイルだけが新しいリリースラベルでタグ付けされたため、除外していることを保証
- Tag RELEASE.0.1 as PROJ-ABC-LIVE.1.3
- Tag revision 12 as PROJ-ABC-LIVE.1.3 (new changes not part of RELEASE.0.1)
:
我々は以前のタグを使用する代わりに、TRUNCを使用してタグ付けしないでくださいテストされていないもの
試験が完了し、任意の追加の変更が(試験の結果として)コードに対して行われたコードは、ライブタグでタグ付けされています。 LIVEタグは、チェックアウトされ、LIVEサーバーに展開されるコードです。
いずれかの時点で、リポジトリのTRUNCは、人々が行った変更の任意の数を含めることができます。場合によっては、「進行中」で不完全なコード変更をチェックインします。誰かが何かをチェックして2週間の休日を過ごすのは完全に正常です。我々は、タグPROJ-ABC-LIVE.1.3ですべてをチェックアウトしてそれを送達するリリースを行うと、ここで例として
は、私たちのリポジトリ
1.4
1.5
1.6 PROJ-ABC-TEST.0.1
1.7
1.8 PROJ-ABC-TEST.0.2
1.9 PROJ-ABC-LIVE.1.3
1.10
1.11
上のリビジョンファイルのサンプル状態であります正式リリース。 1.10および1.11のリビジョンは、現在truncに入っている新しい変更であるため、含まれていません。
私はジェンキンスやハドソンのようなものが、このシナリオで使用されるかを理解するために苦労しています。私たちがそれを紹介するなら、それはまさに私たちのために何をしますか?
私たちが紹介しても、毎回同じリリースを作るだけではないでしょうか?私たちはタグを使ってビルドするので、もしJenkins/Hudsonを紹介したらタグでビルドするように設定しなければなりません。それは実行するたびにPROJ-ABC-LIVE.1.3
を構築するだけではありませんか?最新のタグを使用してビルドすることができない限り。
私はCIの使用方法の見てきた例のほとんどは、ほとんどの人がリポジトリの変更(コミット)があるTRUNC毎回から作成することです。人々が不完全な人工物をチェックインすると、これはどのように機能しますか?トランクが決して安定していない(それが意図されていない)場合、TRUNCからビルドすることのメリットは本当にわかりません。
たぶん私はCMについて非常に精通していないですが、それはどのようにTRUNCから構築された何かを解放することは可能でしょうか?私は私の質問はタグがすべての配送に使用されている場合は、truncは不完全なアーティファクト
- あると思いますか?タグ付きスナップショットは決して変更されません。したがって、CI環境は目的を果たさないでしょうか?
- truncからビルドしないとCIは役に立ちますか? Truncからのビルドの利点は何ですか?
- 新しいLIVEタグが適用されているかどうかを検出してビルドすることができるのであれば、私たちが使用できるかもしれないと思う唯一の方法です。これは可能ですか?
- 私が逃した私たちにとって有益なシナリオはありますか?
おかげ
継続的な統合サーバーは、ソフトウェアが常に安定していることを保証するためのものです。開発者が何らかの状態でトランクにコミットし、それが正常であると考えるなら、なぜCIサーバーが必要なのか分かりません。トランクが決して安定しておらず、気にしないことを確認するだけですそれについて。 CIサーバーが役に立たないと考えるよりも、自分のやり方が正しいことではないことを考慮する必要があります。 –
それは実際には大きな質問です。個人的に私は非常に長い時間CIツールを使ってタグを構築することに関心を持っていました。残念ながら私はまだ解決策を見つけられませんでした。ここでは同じ問題に関する私の質問です:http://stackoverflow.com/questions/9180648/building-tags-using-continuous-integration – altern