私は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. Gitlab継続的インテグレーション流星
- 2. 継続的インテグレーション/ Cruisecontrolのアドバイス
- 3. Mac Mini - 継続的インテグレーション
- 4. TFS継続的インテグレーションとデシジョン
- 5. TFSとgolang継続的インテグレーション
- 6. ナイトリービルド対継続的インテグレーション:ロングランニング自動テスト
- 7. C#継続的インテグレーションのGUIテスト
- 8. iOS - Jenkins/Fastlaneとの継続的インテグレーション
- 9. SQL Serverデータベースユニットのテストと継続的インテグレーション
- 10. Docker swarm、Jenkins、継続的インテグレーションとデプロイメント
- 11. TeamCity for Python/Django継続的インテグレーション
- 12. Tortoise SVNとの継続的インテグレーション
- 13. 継続的インテグレーションにおけるJavaプロファイリング
- 14. asp.net mvc 3と継続的インテグレーション
- 15. 事業でNightly./継続的インテグレーション
- 16. Azureサービスファブリック - VSTSの継続的インテグレーション
- 17. 高速化のClearCaseは、継続的インテグレーション
- 18. DevExpress eXpressApp Framework(XAF)と継続的インテグレーション
- 19. チームサービスとのセレン継続的インテグレーション
- 20. 継続的なインテグレーションをチェックしてください
- 21. ベストプラクティス:ArrayAdapterを継続的に更新
- 22. 継続的インテグレーション - どのくらいの頻度で継続するのですか
- 23. 継続的インテグレーションと継続的展開におけるビルドエージェントの目的は何ですか?
- 24. TFS連続的インテグレーション
- 25. 継続的インテグレーションを使用したタグの構築
- 26. サービスファブリックVSTSホステッドエージェントを使用した継続的インテグレーション
- 27. ジャズSCM継続的インテグレーション - ストリームとワークスペースの構築?
- 28. 継続的インテグレーション中にテストされるもの
- 29. Windows 8の継続的インテグレーションJenkinsでのストアアプリケーション
- 30. TFS 2012で継続的インテグレーションを使用した自動展開
CIはすべてプラットフォームに依存しませんが、CIの構造やファイルの構築方法は、プラットフォームの影響を受ける可能性があります。あなたのプラットフォームは何ですか? – olle
私は.NET/Windows環境に住んでいます。現時点では、Cruise Control .NET、MSBuild、NAntをビルドに使用しています。 –
この記事をチェック:http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256