2016年8月16日火曜日

TeamCity 試験の実施 を行うBuild Step(Visual Studio Test)

概要

試験実施を行う「Visual Studio Test」Build Step についての、作り方、簡単な使い方。
これで「試験実施に失敗したら後続フェーズに進まない」ようなビルドの設定を実現できる。

前提条件

実施の上での前提

試験向けのBuild Step より手前に、普通にビルドが終わっている必要がある。
試験向けBuild Step は、基本的に、出来上がっているdll に対してテストを実行する仕組みなので、まずは、普通にビルドを実行するBuild Step を実行する必要がある。

VSTest Build Agent の環境前提

Webアプリをビルドするのでなければ、以下がインストールされていれば大体は問題ないはず(あるいは、Visual Studio)。
  • Microsoft Build Tools 2015 (MSBuildによるビルドに必要)
  • Agents for Microsoft Visual Studio 2015(VSTest, MSTestによるテスト実施に必要)

Build Step の追加

  1. TeamCityサーバにログイン
  2. 対象のプロジェクトを開く
  3. ビルドの設定を開く
  4. 左側のメニューの「Build Steps」をクリック
  5. 「Add build step」ボタンをクリックか、既存のBuild StepのEditをクリック

  1. 最小限の設定は、以下の通り:

設定内容の補足

  • 「Test engine type」が”VSTest”でも“MSTest”でも、最小限の設定は同じ
  • 「Test file names」には、テストの実施対象となるdllを記載する。
    • DLLのパスは、VCSルートからの相対パスで記載。
    • パスにはワイルドカード(*)が使える
    • すぐ下の「Edit excluded assemblies」をクリックすると、テスト実施対象から除外するdllも設定できる

実行結果の確認

テストの実行に失敗した場合は、普通にBuild Stepがビルド失敗した場合と同様に扱われる
成功した場合と失敗した場合の実行結果例)

ので、Build Step の設定で、「テストに失敗していたら、後続のデプロイは実施しない」といった処理が実現できる。

なお、Build列のリンクをクリックで、各テストの結果を詳細に確認できる。
Visual Studio上で実行した場合と、同程度の情報は参照できる。

「Test」タブをクリックすると、試験実施結果を一覧で参照できる。

以上。

2016年8月15日月曜日

TeamCity での ASP.NET MVC ビルド・デプロイの設定(pubxmlファイルを使ったデプロイ)

概要

TeamCity での、ASP.NET MVC のプロジェクトをデプロイするBuild Stepを作る手順。パブリッシュプロファイル(.pubxml)ファイルを使用。
※以下手順、Azureへのデプロイでは確認済。他環境でも(多分)上手くいくとは思う。。

前提条件

  • NuGetの設定が終わっていること。ASP.NET MVC を使用するプロジェクトでは、大体NuGet を使用していると思われるため、先にその設定を行っておく。手順はこちらの投稿に記載。
  • .publixml ファイルが存在すること。このファイルは、Visual Studio からWebサイトの発行を行うと、「Properties\PublishProfiles」あたりに作成されるはず。
  • BuildAgent に Visual Studio がインストールされている。(Web Express でOK)

手順

  1. TeamCity サーバへアクセスし、管理者としてログイン

  1. 左上の「Projects」をクリックし、設定を変更したいプロジェクトの、右側の「下三角」ボタンをクリックする

  1. 開いたメニューで「Edit Settings」をクリック

  1. 対象のBuild Configuration の行をクリック

  1. 左側のメニューの「Build Steps」をクリック

  1. 開いたメニューで「Add Build Step」ボタンをクリック(あるいは、既存のBuild Step の「Edit」リンクをクリック)

  1. Runner type: として、「MSBuild」を選択

  1. Build file path に、ソリューションファイル名を選択
※右側のボタンをクリックで、接続しているバージョン管理システムから、ファイルを選べる

  1. Build Target を “Rebuild” に設定

  1. Command line parameters に、以下のパラメータを入力(“{}”で囲まれた部分は、実際の値に置き換える)
   /p:DeployOnBuild=true
   /p:PublishProfile={pubxmlファイルの拡張子を除いたファイル名*1}
   /p:Password={デプロイ先のパスワード}

*1 補足:ファイル名が「hogehoge.pubxml」である場合は、「/p:PublishProfile=hogehoge」 と設定する。

  1. 「Save」ボタンをクリックして、BuildStepを保存


上記で追加したBuildStepで、Visual Studio がインストールされているBuild Agentであれば、上記でデプロイまで実施できる。

補足:Azureのデプロイ情報の取得はこっちに投稿。

以上。

AzureのApp Serviceへのデプロイに必要な情報を取得する手順

概要

Azureへのデプロイを行う際に、必要となる各種情報(ユーザーIDとかパスワードとか)の取得手順。とりあえず、TeamCityからのビルドで役立てられるはず。

手順

  1. Azure Portal にログイン
  2. App Service で、Web アプリの一覧を表示
  1. デプロイ向けの情報を知りたいサイトを右クリック
  2. 開いたメニューの「Get publish profile」をクリック

ダウンロードしたファイルをメモ帳等のエディタで開くと、
URLやら、ユーザIDやら、パスワードやら、必要な情報が記載されているのが確認できるはず。

以上。

TeamCity で BuildAgent を作る手順(Windowsインストーラー)

概要

Windowsインストーラを使った、TeamCity のBuildAgentを新規に追加するための手順。

BuildAgent のインストール

  1. BuildAgentにするマシンから、TeamCity サーバにアクセスし、管理者でログインする。

  1. Agents をクリックする
  2. MS Windows Installer リンクをクリックする(2つ目以降のBuildAgentの場合は、まず右上の「Install Build Agents」リンクをクリック)
  1. BuildAgent の初期化に必要なインストーラがダウンロードされるので、そのファイルを実行する
※ 特にこだわりが無ければ、「Next」で、どんどん進めて、インストール。
※インストールの途中で、Build Agent ユーザの設定を求められるが、色々な権限を持つ必要がある。
サーバと通信できる、Build Agent のフォルダに対する完全な権限を持っている、「サービスとしてログオン」権限がある、サービスの起動/停止が行える、プログラムのデバッグが行える、等。


インストールの最後に、Build Agent Properties の設定画面が開く

  1. 「serverUrl」に、TeamCity サーバのurlを入力する。(Build Agent マシンから、ブラウザで入力するURLと同様で良い)
例)以下のような値になるはず

  1. 右下の「Save」ボタンをクリックして、設定を保存する

Build Agent の追加結果を確認

  1. 「serverUrl」で入力したTeamCityサーバにログイン
  2. 上側のメニューの「Agents」をクリック
  3. 「Connected」か「Unauthorized」タブの中身で、追加したAgent が確認できるはず。
  1. サーバと別マシンにBuild Agentを追加した場合、まず「Unauthorized」タブに表示されるので、「Unauthorized」リンクをクリックして、出てきたウィンドウで「Authorize」ボタンクリックで、使用可能なBuild Agentになる。

TeamCityサーバでビルド等を起動すると、ここで追加されたBuildAgentが実際のビルド処理を行う。
ので、Build Agent の追加のためのセットアップだけではなく、予定されるビルド処理に必要なアプリがあれば、別途インストールす必要がある。(Visual Studioとか、JDKとか、MSBuildとか)

以上。

2016年8月14日日曜日

TeamCityへのNuGetのBuild Step追加手順

概要

特定のプロジェクトに対して、 NuGetのBuild Stepを追加するまでの手順。
Visual Studio によるアプリ開発では、NuGetによるパッケージの更新が前提になっているケースが多々あるが、TeamCityでは、デフォルトでNuGetが使えるようになっていない。

ツールの追加

NuGet のBuild Step を実行するために、先にTeamCityサーバ側で設定が必要になる。
(既に設定済であれば、不要)

  1. TeamCity サーバのページを開き、管理者ユーザでログイン

  1. ログイン後、右上の「Administration」をクリック

  1. 管理者用の画面に遷移するので、左側のメニューの「Tools」をクリック

  1. 「Install Tool」ボタンをクリック

  1. 開いた画面で、「NuGet.exe」を選択

  1. バージョンを選択するコンボボックスから、バージョンを選択

  1. 「Add」ボタンをクリック

これで、NuGet.exe が、インストールされる。

NuGet 向けのBuild Step の追加

NuGetの実行が必要なProjectに対して、NuGetを実行するBuild Stepを追加する。

  1. 左上の「Projects」をクリックし、プロジェクトの一覧に移動する

  1. NuGet の パッケージ更新が必要な任意のプロジェクトの、右側の下三角マークをクリック
  2. 開いたメニューで、「Edit Settings」をクリック

  1. 遷移した画面の右側の領域内で、Build Configuration の行をクリック

  1. 設定画面に遷移するので、左側のメニューから、Build Step を選択

  1. 「Add Build Step」ボタンをクリック

  1. Build Step の新規追加画面に遷移する

Build Step の設定

NuGetを実行して、パッケージを更新するBuild Stepの設定。

  1. Runner Type として、「NuGet Installer」を選択

  1. Step Name は任意に入力

  1. Path To Solution File には、対象となるソリューションファイルを指定する。一番右側のボタンをクリックし、対象の.slnファイルを選択
  1. 「Save」をクリック

これで、新規に、Build Stepが追加される

※新規に追加されたBuild Step は、最後に追加されてしまうので、必要に応じて、「Reorder Build Step」ボタンをクリックして、Build Step の実行順序を調整すること。

以上。

TeamCity で Visual Studio Online の Gitリポジトリ から プロジェクトを作る手順

概要

Visual Studio Team Services の Git リポジトリから、TeamCity のプロジェクトを作る手順。
その他Git、SVN でも、似たような手順で作れる…はず。

Visual Studio Team Services の接続情報準備

GitのリポジトリからTeamCityのプロジェクトを作成するには、TeamCity サーバ側から、Gitのリポジトリにアクセスできる状態でなければならない。そのための設定を先に実施しておく。

Personal Token を作成する

Visual Studio Online には、Microsoft のアカウントでログインするが、このアカウントだと、Gitにアクセスしにくい。ので、アクセス用のTokenを先に作る。

  1. Visual Studio Online にログイン

  1. ログインの上、TeamCity に追加したいチームプロジェクトを開く。

  1. 右上のログインユーザ名部分をクリックし「Security」リンクをクリック

  1. Personal access tokens を選択

  1. Add を選択し、任意のDescription を入力の上、「Create Token」ボタンをクリック

  1. 生成されたTokenが一覧上に表示されるので、コピーして、どこかに保存する。後続のログインで使う
※注意※このタイミングを逃すと、2度と表示されないので、ご注意を

TeamCity側の手順

TeamCityサーバ上で、上記のTokenを使いつつ、Visual Studio Team Services のGitからプロジェクトを作る手順。

  1. TeamCityサーバ のページを開き、管理者ユーザーで、ログイン

  1. 「Create Project」ボタンをクリックし、開いたメニューで「Pointing to GitHub Repository」をクリック
※2つ目以降のプロジェクトの場合はまず右上の「Administration」リンクをクリックする

  1. Repository URL に、以下を入力(赤字部分を書き換える):
https://accountname.visualstudio.com/DefaultCollection/_git/ProjectName

  1. ユーザーIDに任意の値を入力(何をいれても問題ない。未入力はNG)

  1. パスワードに、作成した Personal Token を指定する

  1. 「Proceed」ボタンをクリック
(ここで、接続テスト)

上手く接続できると、そのまま、ProjectName と Build Configuration の名前の確認が続く

問題なければ「Proceed」ボタンをクリック。
これで、プロジェクトは、作成完了。

そのまま、Build Step の自動生成に進む。

自動的に生成されたBuild Stepが思い通りのものであれば、そのまま採用する。


以上。

TeamCity サーバのインストール手順(Windows)

概要

WindowsマシンへのTeamCityサーバのインストール手順。

TeamCityとは

いわゆるCIサーバ。Java環境下で動くサーバだが、.NETとも相性が良い。
 ビルドを開始させる、TeamCity サーバ と、
 ビルドを実際に実行する、 BuildAgent
の二つで構成される。

TeamCityサーバと、Build Agent は、同じマシンでも、異なるマシンでも問題はなく、
複数のBuildAgentを指定することもできる。

インストール

Java 8 のインストール

以下URLにアクセスし、JRE を選んでダウンロード+インストール。
Javaがいちいち必要なのは、J2EEサーバ上でTeamCityサーバが動作するため。

TeamCity のインストール

インストーラダウンロード
“Download”ボタンでダウンロードできる。

インストーラを進めると、以下のような画面で、BuildAgent と Server のインストールを選択する画面になる。

TeamCityサーバとBuildAgent が別のマシンである場合、あるいはBuildAgetを別途設定したい場合は、BuildAgent のチェックボックスを外すこと。

途中でサーバのユーザーアカウントを設定する画面になる。

設定するアカウントは、以下のような権限を持つ必要あり
  • 「サービスとしてログオン」の権限
  • TeamCityの作業フォルダへの読み書き
  • Git等のバージョン管理システムとやり取りできるだけの権限

インストール後に、http://localhost が勝手に開く
蛇足:
※インストール時点ではサーバの起動が上手くいかず、「このページは表示できません」状態になるかも...。(何度かなったが、原因がよくわからんかった)
読み込み直してもページが表示されない場合には、マシンを再起動して、再度、 http://localhost にアクセスすれば、上手く動くと思われる。

初回設定

初回アクセス時には、いくつかの設定を行う必要がある。
デフォルトで問題なく動くので、こだわりがない場合には、そのまま「Proceed」ボタンをどんどんクリックして進んで問題ない。

最後に、管理者ユーザのIDとパスワードの入力を求められるので、任意のIDとパスワードを設定。
次回からは、この管理者ユーザIDとパスワードを入力して、ログインすることになる。

管理者ユーザ作成後、以下のような画面が表示されれば、インストール、初回起動は終了。

以上。