2012-02-12 11 views
2

現在、ビルドを実行するためにmavenでgitとjenkinsを使用しています。 私は「プロダクションのための構築」という点でベストプラクティスが何であるか疑問に思っていました。git jenkinsとプロダクションビルドの方法論

私が持っていたアイデアの1つは、新しいブランチを作成して(それを生産と呼ぼう)、が完了するたびにの機能をマスターで完成させることです。

別のアイデアは、バージョンをリリースした後(maven:releaseを使って)、そのタグをビルドしたことです。

私はその場

他のアイデアで、いくつかの現実世界での経験を聞いてみたいですか?

+0

'maven:release'はリリースタグからリリースされるため、余分なものをビルドする必要はありません。後でリリース版で作業を続ける必要がある場合は、新しいブランチにコピーすることをおすすめします。 '1.0-FIX2'(これはpomバージョン' 1.0-FIX2-SNAPSHOT'を持つでしょう)。リリース後、この手順を繰り返すことができます( '1.0-FIX3'、...) –

答えて

0

article by Martin Fowlerが役に立ちました。

CIの主なアイデアの1つは、開発用のメイントランクからコードをリリースすることです。さて、実際には、そのアプローチにはいくつかのしわがあるかもしれませんが、少なくともそれが努力すべきものです。

私たちは顧客ごとに分かれていますが、開発対生産ではありません。特定のリビジョンが生産の準備ができている(つまり、すべての自動テストに合格し、主観的には機能の丸いセットを持っている)と考えると、それはQCに送られ、QCに「bless」または「curse」されます。 QCを通過すると、バージョンは半手動でタグ付けされます。理論的には、オンデマンドで再構築できますが、ビルドの主な成果物はリリースとデバッグのインストーラーであるため、通常は再ビルドする必要はありません。

+0

ありがとうございます。私はもっ​​と技術的なものを探していました。私は現在彼が書いているすべてのものをやっています。 –

+0

[OK]を私の答えでいくつかの詳細を提供 –

1

私たちはここhttp://nvie.com/posts/a-successful-git-branching-model/

修正プログラムを含むすべての開発作業説明分岐モデルを使用している、支店で行われます。次に、1つ以上のブランチがマスターにマージされると、本番のビルドとデプロイメントを行います。ほとんどの開発は、開発ブランチの機能ブランチで行われます。作業が開発に統合されると、その作業は他のプロジェクトで使用される開発環境に構築され、展開されます。つまり、開発環境は開発環境全体の開発ミラーです。その後、QA環境に展開されるリリースブランチに作業がマージされます。そこではQAチームによるさらなるテストが行​​われ、サインオフすると合併してマスターになります。

私は、すべての機能と開発を夜間に自動化するための1つの変更を行うことを考えていました。これは、構築するためにのみ使用され、マージ問題や新しい統合バグ。新しい夜間支店が毎日作成されます。

関連する問題