1

しばらくの間、TFS 2010 を使用して作業項目とスプリントを管理しており、最近、専任の QA 担当者を追加しました。私ができるようにする必要があるのは、「ReadyToDeploy」の状態にある作業項目のみをビルドおよび/またはデプロイする、スケジュールに基づいて (たとえば、火曜日の午後 9 時に) 実行できるビルド定義を作成することです。 . または、TFS API に基づいてプッシュするファイルのリストを取得する方法。

私の最終的な目標は、リリース プロセスを自動化して、QA に合格したアイテムのみがステージング環境に毎週送られるようにすることです。次に、顧客または QA は、アイテムが本番環境のミラーであるステージングで機能することを承認し、別のプロセスまたはビルド定義が、異なる状態になるアイテムを展開します。

さまざまな状態を達成するために作業項目とワークフローを変更しましたが、作業項目の状態に基づいてプッシュする修正のみのビルドまたはすべてのファイルのリストを取得する際に問題が発生しています。

私はこのためのアイデアや解決策を受け入れています。代わりに、ファイルのリストを管理し、毎週ファイルを手動でプッシュする必要があり、それを回避しようとしています。

ありがとう、

編集: 現在のセットアップ方法は、各開発者が独自のブランチと独自の Web サイトを持ち、ソフトウェアはサーバー ベースであり、特定のサーバー上で実行する必要があるというものです。トランクは、メインの開発 Web サイトにリンクされています。これは、QA が最初にテストを行って、アイテムを配置準備完了ステータスに移行する場所です。開発者が QA の準備ができたら、ブランチで変更をチェックインし、トランクにマージします。現時点では、ビルドはトランクから作成されています。展開の夜に、VS でトランク Web サイトを開き、パブリッシュを行い、それらのファイルを開発者から提供されたリストと比較し、コンパイルされたファイルを運用サーバーに ftp します。

4

3 に答える 3

0

自動的に何かを行うこともできますが、それにはかなりの量のコーディングが必要になります。また、Dev、Staging、および Production がすべて独自のブランチから来るように、ブランチ戦略も必要になります。

  1. TFS API を使用してその状態のアイテムをスキャンするプロセスを設定する
  2. API を使用してアイテムをトラバースし、チェックインをアタッチする
  3. API を使用してソース ブランチとターゲット ブランチの最新情報を取得する
  4. API を使用して、変更セットごとにマージします (#2 で特定) (これは簡単ではありません。多くのケースを処理する必要がありますが、マージはすべて競合のない 1 つの方法で行う必要があるため、実行可能です)
  5. API を使用してチェックインする
  6. コンパイル ビルドの開始
  7. コンパイル ビルドが成功した場合は、ビルドの公開が開始されます
于 2013-03-06T18:19:58.440 に答える
0

私は間違っている可能性がありますが、アタッチされた作業項目の状態に基づいて特定の変更セットを回避するようにビルドに指示する方法を知りません。

これを達成できる唯一の方法は、Releaseブランチを作成し、「ReadyToDeploy」状態のチェンジセットを毎日マージすることだと思います。マージすると、変更セットを選択できますが、それらは連続している必要があります。Releaseこれは、ブランチを適切な状態にするために、複数のマージを実行する必要があることを意味します。

似たようなものを何年も運用してきましたが、うまく機能しています。多くの人はそれは悪い習慣だと言うでしょうし、おそらくそうでしょうが、それはあなたが決めることです。

ビルドのためにこれを自動化することに関しては、簡単な仕事ではないと思います。最も難しい部分はマージです。一方通行のマージなので、競合は発生しないと思われるかもしれませんが、これを何年も行っていると、競合が発生することがわかります。

段階的な説明

  1. trunk呼び出されたものからブランチを作成するrelease
  2. デプロイを行う場合は、 から にマージしますがtrunk、変更セットreleaseのみをチェリー ピックしReadyToDeployます。変更セットは連続している必要があるため、これには数回のマージが必要になる場合があります。
  3. リリース ブランチのビルド/デプロイを開始します。
  4. リリース スケジュールが許す限り、手順 2 ~ 3 を繰り返します。
于 2013-03-06T16:29:08.957 に答える