このガイドでは、TeamCity にまったく新しい開発者向けに TeamCity で .NET プロジェクトを構築する方法を説明します。
前提条件
.NET と .NET CLI の基本的な理解があることをお勧めします。 詳細については、ドキュメントの「.NET の入門ガイド」をご覧ください。
TeamCity がリポジトリに正しく接続されると、次のダイアログが表示されます。
Create Project From URL ダイアログには、プロジェクト名と最初のビルド構成名を変更するオプションがあります。
注意: より新しいバージョンの TeamCity には、Default branch と Branch specification のフィールドもあります。これらは TeamCity が構築するブランチを指定するために使用します。 ここでは何も変更しません。
Proceed をクリックすると、TeamCity は自動的にバージョン管理リポジトリをスキャンし、サポートされているテクノロジー(この場合 .NET)を検出します。
TeamCity がリポジトリ内のソリューションファイル(*.sln)を検出すると、プロジェクトのビルドステップが自動的に提案されます。これには、dotnet build による .NET ソリューションのコンパイルと dotnet test による全テストの実行が含まれます。
ビルドステップをビルド構成と混同しないように注意してください。 ビルド構成には潜在的に、多数のビルドステップが含まれることがあります。
.NET のビルドステップのチェックボックスをオンにして、Use selected をクリックします。
これで、TeamCity で .NET リポジトリを正しく構成できました。
以下に示すように、右上にある Run ボタンを押して、最初のビルドを実行することができます。
注意: TeamCity Cloud をご利用の場合は、ビルドエージェントが利用できるようになるまで 2 分ほどかかることがあります。 この間、ビルドは利用可能なエージェントに拾い上げられるまでキューで待機します。
ローカルのビルドエージェントを使うオンプレミス型の TeamCity をご利用の場合、ビルドは直ちに開始します。
ビルドが開始すると、ビルドの概要ページにリダイレクトされ、ビルドに関連するリアルタイムデータを表示する Build Log タグが開きます。
.NET リポジトリが TeamCity に接続されたので、引き続きコードを開発して、リポジトリにプッシュできるようになりました。
デフォルトでは、TeamCity は VCS リポジトリのメインブランチを 60 秒ごとにポーリングして変更を確認し、検出されるすべてのコミットに対して 1 つの(合併した)ビルドをトリガーします。
リポジトリのメインブランチだけでなく、様々なブランチへの変更に対してもビルドをトリガーする場合は、VCS ルートの設定にワイルドカードによるブランチの指定を追加します。 VCS 設定は個別のビルド構成にではなく、TeamCity プロジェクトに属することに注意してください。 したがって、変更内容は、同じ VCS ルートを使用するすべてのビルド構成に適用されることになります。
ブランチの指定例:
+:refs/heads/* – TeamCity はプロジェクトのすべてのブランチの変更をチェックしますが、GitHub などのプラットフォームのプルリクエストは refs/pull/* に一致するためチェックされません。 +:* – TeamCity はすべてのブランチのすべての着信変更をチェックします。 TeamCity は、ブランチ指定に従ってリポジトリにプッシュされているすべてのブランチを監視し、着信の変更を確認し、適宜ビルドを実行するようになりました。
リポジトリに対して行われたプルリクエストを TeamCity で自動的にビルドできるようにするには、ビルド構成にPull Request ビルド機能を追加できます。
注意: Pull Request ビルド機能は透過的にブランチ指定を拡張します(詳細は前の手順をご覧ください)。 たとえば、GitHub の場合、プルリクエスト機能によってブランチ指定に +:refs/pull/* が追加されます(視覚的には確認できません)。
プルリクエスト機能が使用される場合に一般的なブランチ指定にプルリクエストブランチが含まれていないように確認することをお勧めします。含まれている場合、プルリクエスト関連の機能が TeamCity で使用できなくなります。
TeamCity は外部プラットフォームにプルリクエストがないかチェックし、構成ルールに一致しているプルリクエストをビルドするようにトリガーします。
注意: 公開リポジトリでは誰もが危害のあるコードをプッシュできるため、それらがビルドされてしまわないように、この機能の使用には十分な注意が必要です。
プル リクエスト機能を使用する場合 Azure DevOps、 Bitbucket Server、 GitHub、または GitLab と組み合わせて使用する場合、コミットステータスパブリッシャービルド機能を使用することも理にかなっています。 この機能は対応するプラットフォームのプルリクエストのステータスをビルド結果で更新します。
ビルド結果を GitHub にレポートするように TeamCity をセットアップするには、以下の手順を実行する必要があります。
TeamCity がビルドを実行したら、変更によってビルドが失敗していないかどうかを直接 GitHub の Pull Request タブで簡単に確認できるようになります(緑のチェックマーク)。