2

いくつかのファイルをコピーし、execタスクを介してmakensis.exeを実行してインストーラexeをビルドするnAntスクリプトを使用して以前構築したNSISインストーラがあります。ナントスクリプトが完了した後、私はCDのためのcompelte構造と私たちのダウンロードを持っています。継続的な統合による変更の統合

私はsourceafeから未使用のデスクトップにgetしてビルドボックスとして使用してコンパイルしていました。場合によっては、いくつかの重要な問題を修正してファイルをチェックすることもあります。そのような場合、私はビルドボックスに行き、非常に選択的にそれらのファイルだけを取得し、まだリリースする準備ができていない他の変更されたファイルを取得しないようにします。基本的に私は開発を続行し、特定の変更されたファイルをリリースのためにインストーラに選択的に含めることができます。

無料のボックスがなくなり、私たちのサーバーからビルドする必要があります。そこで私は、CI Factoryをセットアップして、開発者がサーバーにリモーティングすることなくビルドを蹴ることができるようにしています。私が苦労している1つの問題は、この選択的な変更管理が継続できるようにする最善の方法です。 CI Factoryが実装するCIのデフォルトのコンセプトは、内部開発の "頭"に適しています。しかし、私はまた、この「パブリックリリース」タイプのビルドのために強制的にオンデマンドで実行されるCCNetプロジェクトをセットアップしたいと思っています。

これは、CCNetとCIファクトリが何をしているのかをまだ理解していれば、これがどれほどうまくいくかを確かめることなく、これまで私が頭に浮かんだことです。 "一般公開"のCCNetプロジェクトの設定/ビルドは、ではなくが最新になるように設定されます。変更はではなく、がビルドをトリガーします。変更が検出されたときに最新のCIメソドロジを使用している別のCCNetプロジェクト(これを「CIプロジェクト」と呼ぶ)から、これらの2つのプロジェクトは同じ作業ディレクトリを共有できません。したがって、「パブリックリリース」は別の作業コピーを必要とするため、CIプロジェクトのビルドがトリガされたときにそのファイルは更新されません。開発者は、サーバーにリモートで接続する必要があります.1つのVSSは、「パブリックリリース」の作業コピーを選択してから、CI Factoryを使用してビルドを強制します。

これは私がこれを見ている不利益です。
1)選択的に取得するために遠隔操作する必要があります。
2)単一のCI Factoryプロジェクトで、Productフォルダの2つの異なる作業コピーを持つようにする方法がないので、各プロジェクト設定ブロックには独自のものがあります。
3)私はこのような違和感を恐れています。 CCNetプロジェクトのconfigブロックでソースコントロールブロックを指定する方法はまだわかりませんが、ビルド時に最新のものを取得することはできません。私はまだ徐々にスクリプトの中にあるものを把握しており、他のものを壊さずに簡単に取り出すことができます。対処したり、設定したりすることはできません。

似たような状況であれば、変更を選択的にリリースするというこの問題について他の人たちがどう対処しているか本当に聞きたいと思います。私はVSSに拘束されているので、すぐにこのことを念頭に置いてこれを解決する必要がありますが、同時に私は他のソース管理システムでこれをどのように管理するのか興味を持っています。おそらく、あなたの最新の開発ブランチであるブランチを持っていて、それらをリリースしたいときはいつでもトランクに変更をマージするでしょうか?私は本当にブランチング/マージのためにVSSを信頼していません。ブランチングの概念は、あまりにも多くのオーバーヘッドとこのショップの学習曲線かもしれないと思います。私が言ったように、他のソース管理システムの話は、私にとって有益な将来の知識となるでしょう。

ありがとうございます。

答えて

1

これを容易にするには、リポジトリに分岐構造が必要です。リリースブランチメソッドのようなもの。選択された個人だけがこのブランチにコミットすることができます(またはそのためのリリース/安定性があります)。手動でCIを起動するように設定して、リリースブランチからマイルストーンへの夜間プロモーションまたはそこからの最終版としてプルします。あなたのビルドマシンで手動で修正するというのは嫌いです。リリースを準備するための安全な場所に、バージョンコントロールの変更を設定し、そこからCIをビルドさせますが、手動で起動させてください。

これらをチェックアウトするbranching patterns私は、リリースごとのコードライン、リリース分岐と呼ばれることが多いC3を提案しました。

Heres articleはVSS分岐で、マージへのリンクを含みます。

questionも同様です。

あなたはこの種のものをより良くサポートして別のソース管理システムに移行することができます。 MSの人々からの提案はありますか?

+0

ありがとうございました。だから、あなたのテクニックは、 "頭"と "公開版"の両方の作業コピーを持ち、私の頭の作業コピーから公開されている作業コピーに選択的にファイルをコピーしてチェックインすることでしょうか? VSSでマージを使用したことは一度もありません。 – AaronLS

+0

私はしばらくの間、vssを使用していませんが、私の提案には、トランクからリリースへの変更が利用可能になったときに変更内容をマージし、必要に応じてリリースからトランクへの変更をバックポートする必要があります。 –

関連する問題