TeamCity オンプレミス 2025.11 ヘルプ

ビルドステップの設定

ビルドステップは、CI/CD ワークフローの最小単位です。ビルドステップは、全体として実行される一連のアクションを定義します。ビルドステップは、ビルド構成パイプラインジョブに属します。

構成とパイプラインのビルドステップ

TeamCity は、.NETMavenNAntXcode などの特定のビルドツール用に設計された幅広いビルドステップを提供します。

現在、ビルド構成ではすべてのステップが利用可能です。バージョン 2025.07 で導入されたパイプラインは、一部のサブセットをサポートしています。ただし、スクリプトステップはエージェントマシンにインストールされている任意のツールでコマンドを実行できるため、あらゆるタイプのプロジェクトをビルドできます。

TeamCity UI でステップを追加する

ビルド構成

  1. 構成設定を開き、ビルドステップ設定タブに移動します。

  2. ビルドステップを追加をクリックしてビルドステップを手動で選択するか、ビルドステップの自動検出をクリックして TeamCity に VCS ルートの対象となるリモートリポジトリをスキャンさせ、適切なステップを提案させます。

New build step page

新しいビルドステップページには 2 つの列が含まれます。

  • デフォルトの手順 - JetBrains によって事前定義されています。

  • レシピ (旧メタランナー) — TeamCity コミュニティまたはチームによって作成されたカスタム XML または YAML ステップ。

JetBrains マーケットプレイスの公開レシピへのアクセスは、プロジェクト設定によって異なります。詳しくは、レシピの操作の記事を参照してください。

パイプライン

  1. ジョブ設定を開き、サイド設定パネルのステップセクションまでスクロールします。

  2. 任意のタイルをクリックして、対応するビルドステップを追加します。

Add build steps to a job

コードにステップを追加する

TeamCity は、Kotlin DSL および YAML (現在はパイプラインのみ) 形式の configuration-as-code をサポートします。

import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildSteps.maven import jetbrains.buildServer.configs.kotlin.buildSteps.script object SampleConfig: BuildType({ name = "Sample two-step configuration" steps { script { name = "Step 1" id = "simpleRunner" scriptContent = """echo "Hello world"""" } maven { name = "Step 2" id = "Step_2" goals = "clean package" jdkHome = "%env.JDK_21_0_ARM64%" mavenVersion = custom { path = "%teamcity.tool.maven.3.8.6%" } } } })
Job1: name: Sample two-step job steps: - type: script name: Step 1 script-content: echo "Hello world" - type: maven name: Step 2 pom-location: pom.xml goals: clean package jdk-home: '%env.JDK_21_0_ARM64%' maven-version: bundled_3_8: {}

ステップ実行条件

ビルドステップは、UI または構成コードに表示されている順序で、上から下へと実行されます。デフォルトでは、TeamCity はいずれかのステップが失敗するまですべてのステップを実行します。いずれかのステップが失敗すると、ビルドは失敗としてマークされ、残りのステップはスキップされます。

ステップをいつ実行するかを定義するカスタム実行ポリシーを設定することで、ビルド構成でこの動作をオーバーライドできます。

Step execute conditions

実行条件は 2 つの部分で構成されます。

  1. 対応するドロップダウンメニューから選択された一般的なルール。

  2. 条件を追加メニューからオプションの追加条件が追加されます。

一般的な実行ルール

  • ビルドステータスが成功した場合のみ — ステップを開始する前に、ビルドエージェントはサーバーにビルドステータスを要求し、ステータスが「失敗」の場合はステップをスキップします。これは、テスト失敗やメトリクス変更による失敗など、サーバーによって処理される失敗条件を考慮します。一部の障害条件はサーバー上で非同期的に処理されるため (TW-17015(英語))、これは依然として正確ではない可能性があることに注意してください。

  • ビルドステータスが失敗の場合のみ — 上記と同じですが、ビルドステータスが「成功」の場合、エージェントはこのステップをスキップします。この条件は、ロールバックやクリーンアップアクションに役立ちます。

  • 前のステップがすべて正常に終了した場合 — エージェント上の前のすべてのステップが成功した場合、サーバーによって報告されたビルドステータスをチェックせずに実行されます。

  • 前の手順の一部が失敗した場合でも — 前のステップの結果やビルドの状態に関係なく実行されます。

  • build stop コマンドが発行された場合でも常に — ビルドがキャンセルされた場合でも、ステップが確実に実行されます。例: 2 つのステップでこの設定を使用し、最初のステップでビルドが停止した場合でも、2 番目のステップは実行されます。2 番目の停止コマンドはビルドを完全に終了します。

追加条件

カスタム条件を使用して実行動作を調整できます。たとえば、個人ビルドまたはデフォルト以外のブランチのステップをスキップしたり、teamcity.agent.jvm.os.name パラメーター値をチェックして OS 固有のステップを実行したりします。

詳細については、次のトピックを参照してください: ビルドステップの実行条件

Bootstrap ステップ

ブートストラップステップは、ビルドがトリガーされた直後、ビルドエージェントがソースファイルをチェックアウトする前に実行されます。これにより、初期セットアップを実行し、後続のステップが期待どおりに実行されるようにするランナー (通常はコマンドライン (スクリプト)) を追加できます。

ブートストラップステップを有効にするには、まず teamcity.internal.bootstrap.steps.enabled=true エントリを TeamCity の内部プロパティまたは個々のプロジェクト (このプロジェクトの構成パラメーターとして) に追加します。この設定により、次の操作を実行できます。

  • ステップ設定でブートストラップ中に実行するオプションを有効にします。

    Bootstrap step

  • 構成のビルドステップページで、ビルド手順を並べ替えるをクリックし、必要なステップを「準備段階」ブロックの前にドラッグします。

    Drag and drop bootstrap step

ブートストラップステップを使用してビルド構成を作成し、この構成をテンプレートに変換できます。このようなテンプレートを使用すると、実際のビルドプロセスが開始される前に、必要な前提条件アクションを実行する追加の構成をすばやく作成できます。

レシピは単一のステップとして扱われるため、チェックアウトの前後に実行される部分に分割することはできません。

Kotlin DSL で通常のステップをブートストラップステップに変換するには、teamcity.step.phase パラメーターを追加し、その値を「bootstrap」に設定します。

object MyConfig : BuildType({ // ... steps { script { name = "Disk prep" id = "simpleRunner" scriptContent = "echo 'Initial setup'" param("teamcity.step.phase", "bootstrap") // Bootstrap step } // Regular steps } // ... })

エージェントレスビルド手順

エージェントレスのビルド手順は、ビルドエージェントを接続せずに外部ソフトウェアで実行できるステップです。

通常、実行中のビルドは、最終ステップが TeamCity の外部で実行された場合でも、最後までビルドエージェントを占有します。ただし、ビルドが残りのいくつかのステップでエージェントを必要としない場合は、このエージェントからデタッチできます。エージェントが使用可能になり、すぐに別のビルドに割り当てることができます。

このアプローチにより、エージェントの作業時間を節約でき、サードパーティツールを使用してビルドを完成させる構成に最適です。たとえば、多数のテストを実行したり、プロジェクトをデプロイしたりする場合などです。このようなビルドは TeamCity の外で終了する可能性があります。TeamCity サーバーは、エージェントをメディエーターとして使用せずに、ステータスレポートを直接検出します。

コンパイル、テスト、デプロイの 3 つのステップで構成されるビルドの例を考えてみましょう。デプロイステップは実際には外部ソフトウェアによって実行されますが、これらはすべてエージェントによって処理されます。エージェントは、外部ソフトウェアをポーリングし、ビルドステータスを TeamCity サーバーに報告しているだけです。

Regular build

エージェントレスアプローチでは、エージェントは最後のデプロイステップを処理する必要がなく、キューから他のビルドを実行できます。TeamCity サーバーは、外部ツールから直接次のレポートをキャッチします。

Build with agentless step

関連事項: エージェントからビルドを切り離す

ステップステータスパラメーター

TeamCity は、指定された ID のステップのステータスを報告する teamcity.build.step.status.<step_ID> パラメーターを提供します。これらのパラメーターは、たとえば、きめ細かな実行条件の作成に使用できます。

ステップ ID は名前に表示され、作成時にのみ編集できます。

Step ID

teamcity.build.step.status.<step_ID> パラメーターの使用可能な値は次のとおりです。

  • success — ステップがエラーなしで終了したとき。

  • failure — ステップが失敗したとき。このステータスは、すべてのビルドの問題がミュートされている場合でも報告されます。

  • cancelled — このステップの実行中にビルドがキャンセルされたとき。

teamcity.build.step.status.<step_ID> パラメーターは、対応するステップが終了した後にのみ表示され、ビルドの開始直後からは使用できません。これは、まだ実行中のステップも、スキップされたステップも、使用可能な teamcity.build.step.status.<step_ID> パラメーターがないことを意味します。

すべてのステップのステータスは、ビルド結果ページのパラメータータブで確認できます。

Step statuses

... または TeamCity REST API 経由。

http://<SERVER_URL>/app/rest/builds/<BUILD_ID>/resulting-properties

追加情報

  • 元のビルド構成設定ページから、あるビルド構成から別のビルド構成にビルドステップをコピーできます。

  • 必要に応じてビルドステップを並べ替えることができます。テンプレートから継承されたビルド構成がある場合、継承されたビルドステップを並べ替えることはできないことに注意してください。ただし、カスタムビルドステップ(継承されない)は、継承されたビルドステップの前または間にある場合でも、任意の場所および順序で挿入できます。継承されたビルドステップは、元のテンプレートでのみ並べ替えることができます。

  • ビルド構成テンプレートから継承されている場合でも、ビルドステップリストの最後の列にある対応するオプションを使用して、ビルドステップを一時的または永続的に無効にすることができます。

2025 年 11 月 10 日

関連ページ:

ビルド構成の作成と編集

ビルド構成とパイプラインは、実際の CI/CD ルーチンを表します。ビルド構成には、一連のビルドステップ(ビルド実行中に実行される基本操作)と、これらのステップの実行に必要な設定が格納されます。これらの設定には以下が含まれます。構成の動作をすばやく変更できるパラメーター。特定の条件が満たされたときに TeamCity が自動的に新しいビルドを開始できるようにするトリガー。構成の機能を拡張する機能を構築します。特定のビルドエージェントで構成ビルドを実行できるようにするエージェント要件。その他。ビル...

パイプラインの作成と編集

パイプラインは、従来のビルド構成に代わる、ユーザー中心の簡素化された代替手段です。チェーンビルドは TeamCity 2025.07 以降で利用可能です。現在早期アクセス段階であり、潜在的な問題が発生する可能性があるため複雑な設定には推奨されませんが、実験的段階ではないため、小規模で要求の少ないプロジェクトであれば本番環境で安全に使用できます。パイプラインとビルド構成とチェーン:パイプラインの作成に進む前に、ビルド構成とパイプラインの違い、それぞれをいつ使用するかを理解することが重要です。パイ...

.NET

TeamCity.NET ビルドステップを使用すると、.NET (Core) および .NET フレームワークを対象とするアプリケーションをビルド、テスト、デプロイできるほか、NuGet パッケージをダウンロードしてプッシュすることもできます。.NET ステップイン構成とパイプライン:クラシックビルド構成では、.NET は、選択したコマンドに応じて設定が変化する単一のビルドステップです。パイプラインでは、これらの各コマンドは個別のビルドステップとして使用できます。エージェント要件:.NET ス...

Maven

Maven ビルドステップでは、ビルドを自動化するために Apache Maven を使用できます。ステップ設定:Maven ステップ設定のリストとそれに対応する UI ラベルは、ビルド構成を構成するかパイプラインを構成するかによって若干異なります。メイン設定ゴール TeamCity で実行させたい Maven ゴールをスペースで区切ってリストします。一部の Maven ゴールはバージョン管理システムを使用できるため、一部の VCS チェックアウトモードゴールと互換性がなくなる可能性があります。このよう...

NAnt

NAnt ビルドランナーでは、NAnt ビルドファイルを使用できます。TeamCity は、バージョン 0.85 以降の NAnt をサポートしています。NAnt の MSBuild タスク:TeamCity NAnt ランナーには、NAnt が MSBuild スクリプトを開始できるようにするというタスクが含まれています。NAnt の TeamCity タスクには、NAntContrib パッケージタスクと同じ属性セットがあります。NAnt によって開始された MSBuild ビルドプロセスは、T...

プロジェクト管理者ガイド

このセクションでは、プロジェクト管理に焦点を当てます。TeamCity プロジェクトとビルド構成の作成、ビルドステップの設定、依存関係チェーンの構成などについて説明します。基本的な TeamCity ワークフロー:次のダイアグラムは、基本的な TeamCity ワークフローを示しています。TeamCity サーバーはリポジトリの変更を検出しました。サーバーはこの変更をデータベースに書き込みます。ビルド構成に添付されたトリガーは、データベース内の関連する変更を検出し、ビルドを開始します。トリガー...