5

最新のコードをテスト Web サイトにリリースし、本番環境に合わせてデータベースを復元し、TFS にあるスキーマとデータの変更を適用する夜間の TeamCity ビルドがあります。このナイトリー ビルドが失敗した場合、コードやデータベース スクリプトを手動で修正してビルドを再開するまで、ウェブサイトはダウンします。

私が望むのは、最後に成功したビルドに自動的にロールバックして、ビルドが中断されても Web サイトを利用できるようにすることです。

調査に少し時間を費やした後、提案された解決策は次のとおりです。

  1. Nightly ビルドが実行され、TFS に新しいラベルが作成されます (Nightly-build-{build number} のようなもの)
  2. ナイトリー ビルドの実行後にトリガーされる新しい TeamCity ビルドを作成する
  3. 最後に成功したナイトリー ビルド番号を見つける
  4. TFS でそのビルド番号のラベルに関連するバージョンを取得します
  5. ロールバック ビルド (ナイトリー ビルドが正常に終了したかどうかは問題ではありません)

私が知らないのは、ロールバックビルドがラベルに基づいてバージョンを取得する方法です。

これまたは別の解決策についての助けをいただければ幸いです。

乾杯。

4

1 に答える 1

5

ここでは、TeamCity REST API の賢明な使用が機能する可能性があります。この同じ領域の一部をカバーするこの質問から少し引用しています。あなたはこのようなことをすることができます(そして私はここで唾を吐きます):

  1. VerifyBuildステップ 2 に従って構成を作成します。
  2. RollbackBuildビルド番号が次のようにパラメーター化されている、特定のラベルからデプロイできる構成を作成します。%rollback.buildnumber%

VerifyBuild

  1. Rest API を使用して、最新の夜間の実稼働デプロイメントを一覧表示します
  2. 最新のデプロイが成功した場合は、完了です。
  3. 最新のデプロイが失敗した場合は、最後に成功したビルドのビルド番号を取得します。
  4. Rest API を使用して、のを最後に成功したビルド番号に設定します。%rollback.buildnumber%RollbackBuild
  5. Rest API を使用して をキューに入れますRollbackBuild

RollbackBuildチェックアウトの前に適切なラベルを動的に取得する方法がわからないため、この方法を提案しているためVerifyBuild、事前入力に使用しています。

于 2013-01-28T22:12:47.857 に答える