私はCIとオートメーションについて最近考えてきました。最近、継続的な統合環境を設定し維持するためのベストプラクティスがあるかどうかを知りたいと考えています。すべてのCI関連ファイルをプロジェクトソースにチェックインしておきますか?どのようにして通常CIを構築し、ファイルを構築しますか?あらゆるヒントは大歓迎です!継続的インテグレーション - ベストプラクティス
答えて
すでに、間違いなくデュバル/マーチャーシュ/グローバMartin Fowler氏のシリーズからContinuous Integrationブックをチェックアウトしていない場合。あなたが深く尋ねるすべての質問を、堅実な例でカバーしています。
また、Pragmatic Series '"Pragmatic Project Automation"もあります。
もちろん、ビルドに必要なすべてのファイルをチェックインする必要があります。CIはそれ以外にどのように取得する必要がありますか?
私はJavaでCIを使用しています。つまり、Ant build.xmlとCruise Control、Team City、またはHudsonのいずれかを意味します。あなたのプロジェクトに一貫したディレクトリ構造を張っておくと、build.xmlが汎用的である可能性があります。
はい。ビルドサーバーにはいくつかのものをインストールする必要がありますが、目標はすべてのCI関連ファイルをソース管理下に置くことです(CIサーバーがそこからファイルを取得するようにします)。 TeamCityをC#開発に使用しています。ビルドが複雑になる場合は、NAnt(MSBuildも呼び出すことができます)を使用します。 – TrueWill
ビルドスクリプトが大きくなると、それを分割して関連する部分を含めることができます。これにより、メンテナンスと可読性が向上します。
私の他のアドバイスは、伝統的なプログラミングとは異なります。ビルドスクリプトを作成するときは、自由な量のコメントを使用します。
- ワンステップビルドから始めます。あなたがそれを持っていない場合、任意の合理的なCIを持つことはできません
- それがソースコントロールにない場合、それは存在しません
- あなたのCIを設定し維持することは、ワークステーションでは、IDEに過度に依存しているか、プロジェクトの構造が複雑すぎます。これをリファクタリングの機会として考えてみましょう。
- あなたはCIをするために何もする必要はありません。あなたはそれが何であるかを知る必要はありません。私はmy earlier experience hereについて書いていましたが、これまでにCIという言葉を聞く前に素朴なCIを実装しました。
人気のジェンキンス/ハドソンCIツールの創始者である河口浩介は、参考になるかもしれないホワイトペーパーを発行したばかりです。 7 Ways to Optimize Jenkins
- 1. 継続的インテグレーション/ Cruisecontrolのアドバイス
- 2. ナイトリービルド対継続的インテグレーション:ロングランニング自動テスト
- 3. TeamCity for Python/Django継続的インテグレーション
- 4. asp.net mvc 3と継続的インテグレーション
- 5. DevExpress eXpressApp Framework(XAF)と継続的インテグレーション
- 6. C#継続的インテグレーションのGUIテスト
- 7. 事業でNightly./継続的インテグレーション
- 8. 継続的インテグレーションにおけるJavaプロファイリング
- 9. Azureサービスファブリック - VSTSの継続的インテグレーション
- 10. Tortoise SVNとの継続的インテグレーション
- 11. 高速化のClearCaseは、継続的インテグレーション
- 12. 継続的なインテグレーションをチェックしてください
- 13. ベストプラクティス:ArrayAdapterを継続的に更新
- 14. 継続的インテグレーション - どのくらいの頻度で継続するのですか
- 15. ジャズSCM継続的インテグレーション - ストリームとワークスペースの構築?
- 16. 継続的インテグレーション、セレニウム、JBoss AS 6のJava EE 6
- 17. NUnit 2.5.xと.Net 4.0による継続的なインテグレーション/ビルド
- 18. zendフレームワーク2 + phpunit +複数モジュール+継続的インテグレーション
- 19. 継続的インテグレーションを使用したタグの構築
- 20. TFS 2012で継続的インテグレーションを使用した自動展開
- 21. 継続的インテグレーション:PowerShellとCIサーバー(CC.NETまたはHudson)
- 22. Windows 8の継続的インテグレーションJenkinsでのストアアプリケーション
- 23. Playをカスタムモジュールと継続的インテグレーションで使用する方法
- 24. 継続的インテグレーション、継続的デリバリと開発運用の違いは何ですか?
- 25. F#タイププロバイダと連続的インテグレーション
- 26. サードパーティのライブラリを継続的インテグレーションの使用でソースコントロールに保存する
- 27. 継続的インテグレーションと組み合わせてインクリメンタルビルディングが可能ですか?
- 28. 継続的インテグレーションのためにXcodebuildからRETINAシミュレータを起動します
- 29. 従来のasp - 継続的インテグレーション環境でのデプロイメントの自動化方法
- 30. 継続的インテグレーション環境における統合テスト:データベースとファイルシステムの状態
CIはすべてプラットフォームに依存しませんが、CIの構造やファイルの構築方法は、プラットフォームの影響を受ける可能性があります。あなたのプラットフォームは何ですか? – olle
私は.NET/Windows環境に住んでいます。現時点では、Cruise Control .NET、MSBuild、NAntをビルドに使用しています。 –
この記事をチェック:http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256