2009-08-29 11 views
17

私はCIとオートメーションについて最近考えてきました。最近、継続的な統合環境を設定し維持するためのベストプラクティスがあるかどうかを知りたいと考えています。すべてのCI関連ファイルをプロジェクトソースにチェックインしておきますか?どのようにして通常CIを構築し、ファイルを構築しますか?あらゆるヒントは大歓迎です!継続的インテグレーション - ベストプラクティス

+0

CIはすべてプラットフォームに依存しませんが、CIの構造やファイルの構築方法は、プラットフォームの影響を受ける可能性があります。あなたのプラットフォームは何ですか? – olle

+0

私は.NET/Windows環境に住んでいます。現時点では、Cruise Control .NET、MSBuild、NAntをビルドに使用しています。 –

+0

この記事をチェック:http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256

答えて

3

すでに、間違いなくデュバル/マーチャーシュ/グローバMartin Fowler氏のシリーズからContinuous Integrationブックをチェックアウトしていない場合。あなたが深く尋ねるすべての質問を、堅実な例でカバーしています。

2

また、Pragmatic Series '"Pragmatic Project Automation"もあります。

もちろん、ビルドに必要なすべてのファイルをチェックインする必要があります。CIはそれ以外にどのように取得する必要がありますか?

私はJavaでCIを使用しています。つまり、Ant build.xmlとCruise Control、Team City、またはHudsonのいずれかを意味します。あなたのプロジェクトに一貫したディレクトリ構造を張っておくと、build.xmlが汎用的である可能性があります。

+0

はい。ビルドサーバーにはいくつかのものをインストールする必要がありますが、目標はすべてのCI関連ファイルをソース管理下に置くことです(CIサーバーがそこからファイルを取得するようにします)。 TeamCityをC#開発に使用しています。ビルドが複雑になる場合は、NAnt(MSBuildも呼び出すことができます)を使用します。 – TrueWill

1

ビルドスクリプトが大きくなると、それを分割して関連する部分を含めることができます。これにより、メンテナンスと可読性が向上します。

私の他のアドバイスは、伝統的なプログラミングとは異なります。ビルドスクリプトを作成するときは、自由な量のコメントを使用します。

6
  1. ワンステップビルドから始めます。あなたがそれを持っていない場合、任意の合理的なCIを持つことはできません
  2. それがソースコントロールにない場合、それは存在しません
  3. あなたのCIを設定し維持することは、ワークステーションでは、IDEに過度に依存しているか、プロジェクトの構造が複雑すぎます。これをリファクタリングの機会として考えてみましょう。
  4. あなたはCIをするために何もする必要はありません。あなたはそれが何であるかを知る必要はありません。私はmy earlier experience hereについて書いていましたが、これまでにCIという言葉を聞く前に素朴なCIを実装しました。
2

人気のジェンキンス/ハドソンCIツールの創始者である河口浩介は、参考になるかもしれないホワイトペーパーを発行したばかりです。 7 Ways to Optimize Jenkins

関連する問題