TeamCity による .NET プロジェクトの構築

このガイドでは、TeamCity にまったく新しい開発者向けに TeamCity で .NET プロジェクトを構築する方法を説明します。

前提条件

.NET と .NET CLI の基本的な理解があることをお勧めします。 For more information, see the Getting Started guide in the .NET documentation.

手順 1 - TeamCity プロジェクトを作成する

  1. TeamCity ページの右上にある Administration 歯車をクリックします。
  2. + Create Project をクリックし、From a repository URL タブを選択します。 In the Repository URL field, enter your repository, for example: https://github.com/matkoch/teamcity-dotnet.git. TeamCity は初期状態で Git、Subversion、Mercurial、Perforce、および TFS(TeamCity Cloud + オンプレミス)の一般的なバージョン管理システムを処理できます。 CVS、StarTeam、および Visual SourceSafe サポートはオンプレミスの TeamCity のみに提供されています。
  3. リポジトリに認証が必要な場合は、ユーザー名とパスワード / アクセストークンを入力します。
  4. Proceed をクリックします。

TeamCity がリポジトリに正しく接続されると、次のダイアログが表示されます。

Create Project From URL ダイアログには、プロジェクト名と最初のビルド構成名を変更するオプションがあります。

注意: より新しいバージョンの TeamCity には、Default branchBranch specification のフィールドもあります。これらは TeamCity が構築するブランチを指定するために使用します。 ここでは何も変更しません。

  • TeamCity がデフォルトのプロジェクト名を提案しますが、必要に応じてプロジェクトに適した名前を選択できます。
  • TeamCity プロジェクトには少なくとも 1 つのビルド構成があり、プロジェクトを構築するために必要なすべてのステップが含まれています。 TeamCity のビルド構成は通常、ほかの CI システムではジョブと呼ばれています。 ここでは、「Build」というデフォルトのビルド構成名を使います。

Proceed をクリックすると、TeamCity は自動的にバージョン管理リポジトリをスキャンし、サポートされているテクノロジー(この場合 .NET)を検出します。

TeamCity がリポジトリ内のソリューションファイル(*.sln)を検出すると、プロジェクトのビルドステップが自動的に提案されます。これには、dotnet build による .NET ソリューションのコンパイルと dotnet test による全テストの実行が含まれます。

ビルドステップをビルド構成と混同しないように注意してください。 ビルド構成には潜在的に、多数のビルドステップが含まれることがあります。

.NET のビルドステップのチェックボックスをオンにして、Use selected をクリックします。

これで、TeamCity で .NET リポジトリを正しく構成できました。

手順 2 - 最初のビルドを実行する

以下に示すように、右上にある Run ボタンを押して、最初のビルドを実行することができます。

注意: TeamCity Cloud をご利用の場合は、ビルドエージェントが利用できるようになるまで 2 分ほどかかることがあります。 この間、ビルドは利用可能なエージェントに拾い上げられるまでキューで待機します。

ローカルのビルドエージェントを使うオンプレミス型の TeamCity をご利用の場合、ビルドは直ちに開始します。

ビルドが開始すると、ビルドの概要ページにリダイレクトされ、ビルドに関連するリアルタイムデータを表示する Build Log タグが開きます。

ビルドの実行が終了したら、テスト結果を確認するか、完全なビルドログを閲覧できます。

手順 3 - .NET TeamCity プロジェクトを構成する

.NET リポジトリが TeamCity に接続されたので、引き続きコードを開発して、リポジトリにプッシュできるようになりました。

デフォルトでは、TeamCity は VCS リポジトリのメインブランチを 60 秒ごとにポーリングして変更を確認し、検出されるすべてのコミットに対して 1 つの(合併した)ビルドをトリガーします。

ブランチの構築

リポジトリのメインブランチだけでなく、様々なブランチへの変更に対してもビルドをトリガーする場合は、VCS ルートの設定にワイルドカードによるブランチの指定を追加します。 VCS 設定は個別のビルド構成にではなく、TeamCity プロジェクトに属することに注意してください。 したがって、変更内容は、同じ VCS ルートを使用するすべてのビルド構成に適用されることになります。

  1. プロジェクトの概要ページで Edit Project をクリックします。 または、Build ビルド構成が開いている場合は、Edit Configuration をクリックします。
  2. VCS ルート(バージョン管理システムのルート)に移動して、VCS ルートを編集します。
  3. Branch Specification 入力フィールドに入力し、Save をクリックします。 Branch Specification 入力フィールドが見当たらない場合は、先に Show Advanced をクリックします。

ブランチの指定例:

  • +:refs/heads/* – TeamCity はプロジェクトのすべてのブランチの変更をチェックしますが、GitHub などのプラットフォームのプルリクエストは refs/pull/* に一致するためチェックされません。
  • +:* – TeamCity はすべてのブランチのすべての着信変更をチェックします。
  • 独自のカスタムブランチ指定。

TeamCity は、ブランチ指定に従ってリポジトリにプッシュされているすべてのブランチを監視し、着信の変更を確認し、適宜ビルドを実行するようになりました。

プルリクエストのビルド

リポジトリに対して行われたプルリクエストを TeamCity で自動的にビルドできるようにするには、ビルド構成にPull Request ビルド機能を追加できます。

  1. ビルド構成を開いて、Edit Configuration をクリックします。
  2. Build Features に移動し、Add Build Feature をクリックします。 Build Features リンクが見当たらない場合は、Show More をクリックします。
  3. ドロップダウンから Pull Requests を選択し、リポジトリとリポジトリプロバイダー(GitHub、GitLab など)を選択します。
  4. (オプション)作者またはブランチ名でプルリクエストを絞り込む Pull Request Filtering を適用します。

注意: Pull Request ビルド機能は透過的にブランチ指定を拡張します(詳細は前の手順をご覧ください)。 たとえば、GitHub の場合、プルリクエスト機能によってブランチ指定に +:refs/pull/* が追加されます(視覚的には確認できません)。

プルリクエスト機能が使用される場合に一般的なブランチ指定にプルリクエストブランチが含まれていないように確認することをお勧めします。含まれている場合、プルリクエスト関連の機能が TeamCity で使用できなくなります。

TeamCity は外部プラットフォームにプルリクエストがないかチェックし、構成ルールに一致しているプルリクエストをビルドするようにトリガーします。

注意: 公開リポジトリでは誰もが危害のあるコードをプッシュできるため、それらがビルドされてしまわないように、この機能の使用には十分な注意が必要です。

Commit Status Publisher

When using the pull requests feature in combination with Azure DevOps, Bitbucket Server, GitHub, or GitLab, it also makes sense to use the Commit Status Publisher build feature. この機能は対応するプラットフォームのプルリクエストのステータスをビルド結果で更新します。

ビルド結果を GitHub にレポートするように TeamCity をセットアップするには、以下の手順を実行する必要があります。

  1. ビルド構成を開いて、Edit Configuration をクリックします。
  2. Build Features に移動し、Add Build Feature をクリックします。
  3. ドロップダウンから Commit Status Publisher を選択して、リポジトリとパブリッシャー(GitHub、GitLab など)を選択します。
  4. コミットのステータスをパブリッシュできる十分な権限をアクセストークンに付与します。
  5. Save をクリックします。

TeamCity がビルドを実行したら、変更によってビルドが失敗していないかどうかを直接 GitHub の Pull Request タブで簡単に確認できるようになります(緑のチェックマーク)。