ビルド構成の作成と編集。
ビルド構成と パイプラインは、実際の CI/CD ルーチンを表します。 ビルド構成には、一連のビルドステップ(ビルド実行中に実行される基本操作)と、これらのステップの実行に必要な設定が格納されます。 これらの設定には以下が含まれます。
構成の動作をすばやく変更できる パラメーター。
特定の条件が満たされたときに TeamCity が新しいビルドを自動的に開始できるようにする トリガー;
構成の機能を拡張する 機能を構築します。
特定のビルドエージェントで構成ビルドを実行できるようにする エージェント要件。
その他。
ビルドシーケンス(特定のタスクを専用環境で実行するシーケンス)ごとに、個別のビルド構成またはパイプラインを用意することをお勧めします。 これにより、新しい問題や失敗したテストの検出、最初の失敗 / 修正済みテストのステータス、調査の自動削除などの機能が適切に機能します。
ビルド構成とパイプライン
構成の作成に入る前に、ビルド構成とパイプラインの違い、およびそれぞれをいつ使うかを理解しておくことが重要です。 作成後は、ビルド構成をパイプラインやジョブに変換することも、その逆もできない点に注意してください。
- 親
ビルド構成とパイプラインはどちらも TeamCity プロジェクトに属します。 各プロジェクトには、無制限の数の構成とパイプラインを含めることができます。
- 子
ビルドはビルドステップを直接所有します。
パイプラインはジョブを所有し、ジョブは通常のビルドステップを所有します。
- サポートされている VCS タイプ
従来の TeamCity ビルド構成は Git、Subversion、Mercurial、TFS、Perforce をサポートしており、GitHub、GitLab、Bitbucket、Azure などの主要な VCS プロバイダーとの統合も備えています。
TeamCity Pipelines は GitHub、GitLab、Bitbucket Cloud との組み込み統合を提供します。 その他の Git リポジトリには、直接 URL 経由で接続できます。 Subversion、Mercurial、TFS、Perforce は現在サポートされていません。
- 実行モード
パイプラインは常に最初から最後まで実行され、コンパイル失敗や接続の問題などのエラーによって中断されない限り、すべてのジョブが実行されます。
ビルド構成は 条件付きステップ実行をサポートします。 例: 前のステップが失敗した場合にのみ実行されるステップを追加できます。
- 依存関係
ビルド構成とパイプラインはどちらも、異なる TeamCity プロジェクトにまたがる大規模な ビルドチェーンにリンクできます。
- コードとしての構成
パイプラインとビルド構成はどちらも、設定をコードとしてプロジェクトのソースコードのすぐ隣に保存できます。 どちらもブランチ設定をサポートしているため、各リポジトリブランチごとに独自の設定ファイルを持つことができます。
ビルド構成は XML または Kotlin DSL 形式で設定を保存します。 これらのファイルは TeamCity UI から編集できません。
パイプラインでは、TeamCity で直接編集できる YAML と、 自動生成された Kotlinに設定が保存されます。
- 制限事項
まとめると、パイプラインとビルド構成はどちらもプロジェクトが所有するものの、それぞれ異なるニーズに対応します。 パイプラインは、小規模プロジェクト(通常は 10 – 15 ビルドまで)におけるシンプルな CI/CD ワークフローに最適です。 以下の場合は、代わりにビルド構成を選択してください。
プロジェクトには、10 – 15 シーケンシャルビルドよりも複雑なワークフローが含まれます。
パイプラインでまだ利用できない高度な機能 (ビルド承認 など) を必要とする経験豊富なユーザーです。
どのビルドのチェーン構成をいつ、どのように実行するかを細かく制御する必要があります。
TeamCity UI でビルド構成を作成する
TeamCity プロジェクトにビルド構成を追加するには、サイドバーの プラス ボタンを使用します…

または、プロジェクト設定の 一般 タブから ビルド構成を作成 をクリックします。

利用可能なオプション
ビルド構成は、VCS に保存されているプロジェクトをビルド、テスト、デプロイする構成と、リモートリポジトリを必要としない構成 (たとえば、データの下へロードと処理にサードパーティの REST API を使用する構成) の 2 つの主要なタイプのいずれかになります。
リモートリポジトリをチェックする構成は、TeamCity 接続または VCS ルートを使用して作成できます。
利用可能なすべてのオプションは、 ビルドをセットアップする。 ページの対応するドロップ下へに表示されます。

TeamCity 接続を使用する
TeamCity 接続 は、VCS ホスティング、クラウドデータストレージ、Docker レジストリ、シークレット保管庫などの外部リソースにアクセスするために必要なすべての情報を保存します。 接続の使用は、ソースをビルドする最も便利な方法です: 一度構成しておけば、新しいビルド構成やパイプラインを追加するときに、必要なリポジトリをリストから選択するだけです。
上の図は、既存の接続のリストを示しています: GitLab 接続、GitHub 接続、いくつかの Azure 接続などです。 ビルド構成の親に含まれるどのプロジェクトにも VCS 接続がない場合、ここでの唯一のオプションは 新しいリポジトリを接続 メニュー項目から新しい接続を作成することです。
リポジトリ URL を使用する
このオプションを使用すると、Git、Subversion、Mercurial、TFS、Perforce リポジトリ(ディポ)URL を使用して、構成を一括でビルドできます。 任意の URL タイプを使用できます。
通常のリポジトリの Web リンク:
https://github.com/Johndoe/my-sample-appHTTPS クローン URL:
https://github.com/Johndoe/my-sample-app.gitSSH クローン URL:
git@github.com:Johndoe/my-sample-app.git
リモートリポジトリの構築を開始するには、以下の手順に従います。
ビルドをセットアップする。 ページで、 任意の Git URL から オプションを選択します。
認証タイプを選択します。
- SSH 鍵
リポジトリ URL が SSH クローン URL の場合に使用できます。 SSH 鍵をアップロード をクリックして秘密鍵を追加します。これは親プロジェクト(親プロジェクト設定| SSH 鍵 )に保存され、追加プロジェクトを構成するときにドロップダウンメニューに表示されます。
詳細: SSH キーの管理
- HTTPS
このオプションは HTTP(s) クローン URL で使用でき、次の 3 つの認証オプションを提供します。
トークン — VCS 側で個人アクセストークン(PAT)を発行し、ここに貼り付けます。 TeamCity 更新可能なアクセストークンを管理する ページを使用してトークンを発行することもできます。
パスワード - 通常のユーザー名 / パスワードの資格情報を入力します。
匿名 — 公開リポジトリで利用可能です。 このオプションは、書き込みアクセス権限を利用する予定がない場合 (たとえば、VCS に TeamCity ビルドステータスを投稿する場合) にのみ使用してください。
基本的な設定オプションを設定します。
作成 をクリックします。 TeamCity によって詳細な構成設定に移動し、そこでビルドステップを追加したり、監視対象ブランチのリストを編集したり、追加のビルド機能を有効化したりできます。
VCS ルートを使用する
リモートリポジトリに保存されたソースを処理するすべてのビルド構成は、 VCS ルート オブジェクトを利用して処理されます。 このオブジェクトには、単一のリポジトリへのアクセスに必要な接続設定に加え、監視対象のブランチのリスト、自動ポーリング間隔、サブモジュールのチェックアウトポリシーといった詳細設定が保存されます。
必要なリポジトリをビルド、テスト、デプロイするビルド構成またはパイプラインがすでに存在する場合は、その構成 / パイプラインの VCS ルートを再利用できます。 これを行うには、次のいずれかの方法を使用します。
新しい構成を作成します - ビルドをセットアップする。 ページで 既存のルートから オプションを選択します。
既存の構成を編集する - ビルド構成設定 | バージョン管理 に移動し、 VCS ルートを接続 をクリックします。

既存の VCS ルートを再利用すると、必要な認証とブランチ設定のセット上へにかかる時間を節約でき、重複したルートの作成を回避できます。
リポジトリなしの構成
この構成タイプは実行時にリモートリポジトリをチェックアウトしません。 たとえば、そのステップは事前定義されたスクリプトを実行し、HTTP リクエストを送信するだけです。
新しい「アンバウンド」を作成できます: 2 つの方法で構成できます。
ビルドをセットアップする。 ページで、 リポジトリなし を選択します。
クラシック UI で、 新しいビルド構成 ページを開き、 手動で タイルをクリックします。
VCS ルートは VCS プロバイダへの接続とリポジトリのチェックアウトを制御します。 そのため、VCS ルートをデタッチすることで、ビルド構成をアンバウンドにすることができます。 逆に、リポジトリのない構成に VCS ルートをアタッチすると、リモートソースをチェックアウトできるようになります。 どちらの操作も、ビルド構成設定の バージョン管理 セクションで実行できます。

複数のリポジトリを使用する構成
設定によって、どのリポジトリをチェックアウトするか、また、関連付けられた VCS ルートを通じてどのブランチを追跡するかが決まります。 設定には、ルートを 0 個から複数個まで、任意の数だけ設定できます。
通常、構成は単一のリポジトリを使用するため、VCS ルートも 1 つになります。 完全に独立したプロジェクトをビルドする必要がある場合は、個別の構成を作成し、必要に応じて ビルドチェーンでリンクするのが最適です。 ただし、複数のリポジトリが関連している場合 (コア製品とそのプラグインなど)、複数の VCS ルートを同じ構成にアタッチして、まとめてビルドできます。 これを行うには、この記事で説明されているいずれかの方法を使用して構成を作成し、その設定の バージョン管理 セクションに移動します。 ここで、必要なリポジトリを対象とする VCS ルートをさらに作成できます。
以下の Kotlin DSL スニペットは、2 つのルートが接続された構成を示しています。
すべての VCS ルートは、同じ チェックアウトディレクトリにソースを下へロードします。 ファイルの競合を回避し、フォルダーを整理するためには、 ルートチェックアウトルールを使用して、各リポジトリのソースを別々のサブディレクトリに下へロードするのが最適です。 例: 上記のスニペットは、デフォルトのチェックアウトディレクトリ内の「MavenRepo」フォルダーと「GradleRepo」フォルダーにソースを配置します。
例: 接続ベースの構成を作成する
この例では、GitHub への接続を追加し、それを使用して新しいビルド構成を作成します。
TeamCity は GitHub 認証メソッドとして、OAuth 2.0 と GitHub アプリをサポートしています。 どちらの認証方式もカスタマイズは最小限で、設定は 1 分もかかりません。 両方の接続タイプとその他の VCS プロバイダー接続の詳細については、こちらの記事を参照してください: 接続の構成。
接続ベースの構成は二通りの方法で作成できます: プロジェクト設定で接続を作成して ビルドをセットアップする。 ページで選択するか、この単一ページですべて行います。 以下のタブは、両方のアプローチを示しています。
TeamCity UI を使用して、必要なプロジェクトに ビルド構成を追加します。
ドロップ下へメニューから 新しいリポジトリを接続 を選択します。
GitHub タイルを展開し、 GitHub.com を選択します。

TeamCity の指示に従って GitHub の "開発者設定" ページに移動し、新しいアプリケーションを作成します。

GitHub アプリケーションページで 新しいクライアントシークレットを生成 をクリックし、このシークレットとクライアント ID の両方を対応する TeamCity 接続プロパティに貼り付けます。
GitHub にアプリケーションをインストールすると、 ビルドをセットアップする。 ページのドロップ下へメニューで新しい接続を選択できます。 初めて使用する際には、新しい接続を使用して GitHub にログインするために、 <Username> を承認 をクリックする必要がありますためご注意ください。
TeamCity は、基になる接続を介してアクセスできるリポジトリのリストを表示します。 検索パネルを使用して目的のリポジトリを見つけ、クリックして続行してください。

基本的な設定オプションを設定し、 作成 をクリックして終了します。
ステップ 1: 接続を作成
新しい GitHub 接続を所有するプロジェクトの 設定を開きます。 このサーバーで作成されるすべてのプロジェクトで将来的に接続を使用できるようにするには、 ルート プロジェクトを変更してください。
接続 タブに移動し、 接続を追加 をクリックします。

接続タイプとして GitHub アプリ を選択し、 アプリを作成 をクリックします。

TeamCity は GitHub にリダイレクトし、アプリの承認、インストール場所(個人アカウントまたは組織)の選択、必要に応じたリポジトリアクセスの制限を行えるようにします。 TeamCity で構成されたアプリは、 GitHub 設定 | 開発者設定 | GitHub アプリ からいつでも確認・編集でき、 GitHub 設定 | アプリケーション ページでアンインストールできます。
アプリのインストール後、TeamCity に戻ります。そこでは、すべての接続設定(App ID、クライアント ID、クライアントシークレットなど)の値がすでに入力されています。 接続をテスト をクリックしてセットアップを確認し、次に 保存 をクリックして完了します。
ステップ 2: ビルド構成を作成
TeamCity UI を使用して、必要なプロジェクトに ビルド構成を追加します。
リストから新しい接続を選択してください。 この接続を初めて使用する場合は、サインインが必要になる場合があります。
TeamCity は、基になる接続を介してアクセスできるリポジトリのリストを表示します。 検索パネルを使用して目的のリポジトリを見つけ、クリックして続行してください。

基本的な設定オプションを設定し、 作成 をクリックして終了します。
Kotlin DSL でビルド構成を作成する
次の Kotlin コードは、ターゲット VCS ルートを利用して VCS ホスティングプロバイダーと対話する新しいビルド構成を作成します。
詳細については、次の記事を参照してください。
REST API でビルド構成を作成する
次のリクエストは、特定の親プロジェクトが所有する新しい空の TeamCity ビルド構成を作成します。
詳細については、次の記事を参照してください。
ビルド構成テンプレート
テンプレートを使用すると、同一の設定を持つ複数の構成をすばやく作成できます。 構成を作成した後で、その設定を上書きすることもできます。
ビルド構成テンプレートを手動で作成することも、既存の構成から抽出することもできます。
テンプレートを手動で作成する
テンプレートの作成は、 手動で タイルを使用してビルド構成を作成するのと同じです。
構成からテンプレートを抽出する
参照として使用したいビルド構成がすでにある場合は、そこからテンプレートを抽出できます。
ビルド構成設定を開きます。
右上隅の アクション メニューを開き、 テンプレートを抽出… をクリックします。

設定名を入力し、 抽出 をクリックします。 テンプレート ID は自動生成された値をそのまま使用できます。
ソース構成が新しいテンプレートを最初に使用します。 ソース構成を独立させておくには、 切り離す をクリックします。 それ以外の場合、テンプレートへの変更は、この構成と、それを基にした他のすべての構成に適用されます。

テンプレートからビルド構成を作成する
テンプレート化されたビルド構成は、テンプレート設定ページから作成する方法と、通常の構成を作成して使用するテンプレートを選択する方法の 2 つの方法で作成できます。
オプション 1:
プロジェクト設定を開き、 一般設定タブに移動します。
ビルド構成テンプレート セクションまで下にスクロールし、必要なテンプレートをクリックします。
右上隅の アクション メニューを呼び出し、 このテンプレートからビルド構成を作成… をクリックします。

新しい構成に必要な設定を指定します。 手動で 以外のタイルはクリックしないでください。クリックすると、選択したテンプレートが使用されない新しい構成が作成されます。
オプション #2:
プロジェクト設定を開き、 一般設定タブに移動します。
ビルド構成 セクションの ビルド構成を作成 をクリックします。
手動で タイルをクリックし、 テンプレートに基づく ドロップ下へメニューから必要なテンプレートを選択します。 このメニューは、このプロジェクトまたはその親プロジェクトのいずれかに少なくとも 1 つのビルド構成テンプレートがある場合に使用できます。

オプション #2 は、 ビルド構成テンプレート セクションが別の (サブ) プロジェクトによって所有されているため、必要なテンプレートが表示されない場合に役立ちます。
ビルド構成を並べ替える
プロジェクトのすべてのビルド構成は、 プロジェクト概要 ページで表示できます。 デフォルトでは、アルファベット順にリストされていますが、管理者は この順序をカスタマイズできます。
ビルド構成設定
ビルド構成設定は次のとおりです。
バージョン管理の設定 、VCS からソースコードを取得する方法、チェックアウト先などを定義します
ビルドステップ 、順次実行されるアクション: たとえば、msbuild、スクリプト、単体テストの実行
新しいビルドをいつ開始するかを定義するルールである トリガー
ビルドが失敗としてマークされる時期を指定する 失敗条件
追加の ビルド機能
依存関係:
スナップショット依存関係の場合、TeamCity は、依存先のビルドが開始された時点で取得されたソースに対して、すべての依存ビルドを実行します
アーティファクト依存関係の場合、ビルドが開始される前に、このビルドが依存するすべてのアーティファクトがダウンロードされ、構成されたターゲット場所に配置されてから、ビルドによって使用されます
設定の共有を可能にする パラメーター
ビルド構成を編集する権限
プロジェクト管理者権限を持つユーザーのみがプロジェクトとビルド構成設定を変更できますが、ソースコードへのコントリビューターもビルド設定と環境に影響を与える方法はいくつかあります。
デフォルトの プロジェクト開発者 ロールは、ユーザーに次の 2 つの権限を付与します。
ビルドパラメーターをカスタマイズするを使用すると、 ビルド構成パラメーターの値を変更できるため、ソースコードの実行方法に影響を与える可能性があります。
カスタムパッチでビルドソースコードを変更するを使用すると、リポジトリにまだコミットされていないユーザーのローカルソースに基づいて カスタムビルドを実行できます。
さらに、ソースコードを作成する、または Kotlin DSL に保存されたプロジェクト設定を含むリポジトリに書き込むことができるすべてのユーザーは、共通のビルドエージェント上で任意のコードを実行できる可能性があります。
上記の権限をユーザーに付与する場合、またはプロジェクトのリポジトリへのアクセス権を書き込む場合は、この側面を考慮することをお勧めします。 必要に応じて、各ロールに付与される権限のセットを調整できます。
ビルド構成設定のアクション
設定画面の右上隅にある アクション メニューを使用して、次のことを行います。