なか日記

一度きりの人生、楽しく生きよう。

Team Foundation ServiceとAzure Webサイトの連携

今年の4月頃に書いてたけど、ASP.NET WebサイトをTeam Foundation ServiceからAzure Webサイトにデプロイしようとするとエラー - なか日記でハマってしまい、放置してた。そういえばと思いだして半ば強引に解決させたので、それをベースに仕上げちゃったエントリ。

Team Foundation Service(以下、TFS)にチェックインしたら、Azure Webサイトに自動でデプロイしてくれる方法が以下に載ってたので試してみた。

Continuous delivery with Team Foundation Service in Windows Azure

材料

とはいうものの、Azure Webサイトにデプロイするネタがない・・・そうだ!あれを使わしてもらおう!

daruyanagi/uhobbs · GitHub

これが何なのか、詳しい説明は@に聞いてくれ

チームプロジェクトの作成

GitHubに公開されているので、Gitを使いたいところではあるが、AzureからGitリポジトリのTFSには接続できないようなので、ここは「New Team Project」を選択しよう。

f:id:nakaji999:20130405001331p:plain

はやる気持ちを抑えつつ、プロジェクト名や説明を記入してチームプロジェクトを作成しよう。

f:id:nakaji999:20130912003545p:plain

Azure Webサイトの作成

適当なURLでWebサイトを作成しよう。

f:id:nakaji999:20130912004026p:plain

作成されたサイトを選択すると、以下の様な画面が表示される。そう、ここで「ソース管理の統合 ソース管理からのデプロイの設定」を選択するのだ!

f:id:nakaji999:20130912004228p:plain

以下の様にソースコードを置いているサービスを選択する画面が表示される。

f:id:nakaji999:20130405005602p:plain

TFSやCodePrexだけでなく、GitHubやDropBox、BitBucketまで対応しているのは知らなかった。

ここは初志貫徹でTFSを選択しよう。

TFSの接続承認画面が表示されるので、自分が管理しているTFSアカウント名を入力し、「今すぐ承認」しよう。 認証画面が表示されるが、「Accept」ボタンを押すだけで良いはずだ。

最後の「発行の設定」でTFS上のチームプロジェクトを選択する。リポジトリにGitを選択した場合には、ここのドロップダウンに表示されない*1ので注意が必要だ。

f:id:nakaji999:20130405012727p:plain

デプロイを選択して以下の様になっていれば設定は完了だ。次へ進もう。

f:id:nakaji999:20130405013305p:plain

Gitでの操作

GitHubからuhobbsのクローン

まずはホ…いや、本家からソース一式をクローンしよう。

> git clone git://github.com/daruyanagi/uhobbs.git

VisualStudioの起動とTFSへの接続

まずはVisualStudio*2を起動し、チームエクスプローラからTeam Foundation サービスに「接続」を行おう。この辺の表示はVisualStudioに適用しているUpdateで多少変わるようだ。

f:id:nakaji999:20130912004805p:plain

初めて接続する場合にはサーバの登録が必要になるがそれほど迷うことはないだろう。

f:id:nakaji999:20130405014343p:plain

TFSへのチェックイン

クローンしたuhobbsをVisualStudioで開くわけだがちょっと待て。メニューからファイル→開く→Webサイトとすれば開けるが、後でハマるぞ。

ここは新しくプロジェクトを作成しよう。プロジェクトの種類は「ASP.NET 空の Web アプリケーション」だ。

f:id:nakaji999:20130912005529p:plain

次にプロジェクトエクスプローラーから「ソリューションをソース管理に追加」しておこう。

f:id:nakaji999:20130405014523p:plain

そしてチームエクスプローラーから保留中の変更をチェックインしよう。

f:id:nakaji999:20130405014828p:plain

チェックインが完了したら、チームエクスプローラーのビルドを見てみよう。マイ ビルドにキューイングされているビルドがある。これがプロジェクトのビルドを行い、Azure Webサイトへのデプロイまでを行うビルドになる。先ほどのAzure Webサイトで行った設定で自動的にビルドの定義もしてくれるのだ。スバ、ラッシイ。

f:id:nakaji999:20130912005921p:plain

ビルドが完了するまでそれなりに時間がかかる。こういう時のために小噺を用意しとくのは大人のたしなみというものだが、あいにく今日は準備してきていない。各自、トイレに行くなり飲み物を取りに行くなりして時間を潰すのがいいだろう。

しばらくしてこんな風になれば成功だ。おめでとう。

f:id:nakaji999:20130912010319p:plain

しかし、まだ肝心の ホモBBS uhobbsはプロジェクトに含まれていないので誰も嬉しくない。

プロジェクトに含めるには先ほどgitでクローンしたソースを丸ごとWeb アプリケーションの中につっこんでしまえば良い。

f:id:nakaji999:20130912013450p:plain

binもソース管理に含めているのはuhobbsが使用しているアセンブリを参照設定でチェックするのが面倒くさかったからだ。ものぐさなので大目にみて欲しい。

この状態ですべてのファイルをチェックインしよう。先ほどと同じようにビルドがキューイングされる。BBSのデプロイまでもうすぐだ。今のうちにトイレに行ってこい。

やったぜ父ちゃん!

f:id:nakaji999:20130912013813p:plain

*1:2013年4月13日現在

*2:私は2012を使用している