TeamCity の CaC

CaC(構成のコード化)により、自動 CI/CD パイプラインをレベルアップできます。TeamCity のビルド構成をバージョン管理システムに保管して管理すれば、再利用性、移植性、保守性、および一貫性が向上します。

TeamCity Configuration as Code.

コード化したパイプラインを保管してバージョン管理のあらゆるメリットを享受

プロジェクト間でのビルドロジックの複製、複数の構成への確実な更新の適用、パイプラインの体系的な管理を効率的に行えます。

ビルド構成を簡単に古いバージョンに戻せます。

更新のたびにピアレビュープロセスを実施できます。

パイプラインロジックへのアクセスを管理できます。

各変更の監査ログを管理します。

CI/CD パイプラインの SSoT

VCS をビルド構成とアプリケーションコードの SSoT(信頼できる唯一の情報源)とすることで、ソース管理のすべてのメリットを活用できます。TeamCity では、ウェブ UI で行った変更内容を自動的にバージョン管理システムに同期するか、UI からのビルド構成の編集を無効にしてすべての変更をコード化することを要求するかを選択できます。

  • Git、Mercurial、Perforce、Subversion、および Azure DevOps(旧 TFS)をサポートします。
  • ビルド構成の設定を Kotlin DSL か XML ファイルの形式で定義し、結果を TeamCity で表示できます。
  • ブランチ、プルリクエスト、差分、およびタグを使用して、パイプラインへの変更を管理できます。
  • ビルドとテストパイプラインより前のイテレーションに簡単にロールバックできます。
  • 完全な変更の監査ログにより、すべての更新を追跡できます。

成熟したプログラミング言語の力

Kotlin DSL を使うと、パイプラインをコードとして作成するように設計された DSL の強みを兼ね備えた完全なプログラミング言語のあらゆるメリットを享受できます。

直感的で統計的に型付けされた言語からすべての TeamCity ビルド機能にアクセスできます。

独自のクラス、関数、およびライブラリを定義することで、効率的で合理化されたパイプラインロジックを記述できます。外部ライブラリから機能をインポートできます。

IntelliJ IDEA からビルド構成を作成し、コードナビゲーション、自動補完、構文ハイライト、およびリファクタリングの提案を利用できます。

理解しやすいコードで、順次および並列ビルドチェーンを構成できます。特定の構成の設定を TeamCity UI でプレビューできます。

素晴らしいですね!でも Kotlin を使っていません...

Kotlin を使用すると多くのメリットがもたらされ、パイプラインの構成が YAML よりも簡単になります。Kotlin を使用したことがない方には特に最初は難しく見えるかもしれませんが、そんなことはありません。Kotlin での構成の記述を支援するため、すべての設定の DSL コードは TeamCity が自動的に生成します。このコードは管理者 UI でプレビュー可能です。

Sounds Great! But I Don’t Speak Kotlin...

CI/CD の大規模運用

複数の異なるプラットフォームに対して複数バージョンの個々のフレームワークやソフトウェア開発キットを使って変更のビルドとテストを行う場合、ビルド構成の数が一気に増大します。これらの構成をコードとして管理すれば、スクリプトを再利用して設定をわずか数行のコードにカプセル化することができます。

Operate CI/CD at Scale.

TeamCity の Kotlin DSL ならパイプラインの構成を再利用と管理が容易なコードに合理化できるため、ビルドジョブごとの設定を瞬時に更新できるようになります。

Picnic 社による TeamCity Cloud と Kotlin DSL を使ったビルドの高速化手法

「当社は TeamCity の UI からの編集を無効にする方針をとっています。パイプラインの標準化を目標の 1 つとしているためです。この標準化はコード化された構成を使用することで達成しています。すべてのビルド構成は、それぞれのリポジトリに Kotlin コードとして保管されています。当社は TeamCity の Kotlin DSL をベースに独自の DSL を構築しました。その結果、20 行以内のコードでパイプラインを定義できるようになりました。」

– Ivan Babiankou、Picnic ソフトウェアエンジニア

明快かつ簡潔なドキュメントを活用

TeamCity の Kotlin DSL にはプロジェクトをセットアップする際に参照できる明快なドキュメントが豊富に用意されています。ドキュメントに掲載されている例をコピーしてコードベースに直接貼り付けるだけで、次に使用する関数を確実に理解できます。

Take Advantage of Clear and Concise Documentation

すべてを継続させるための道筋

TeamCity で CI/CD パイプラインの構成をコード化すると、継続的なフィードバックと改善という DevOps の目標へさらに一歩近づけます。TeamCity の UI から設定を変更しているのか、コードを変更しているのかに関係なく、パイプラインに対する更新はデプロイされる前に一連の手動チェックと自動化テストが毎回行われます。

  • パイプラインの変更を適用する前に必須のコードレビューと自動化テストによってエラーを削減し、品質を改善できます。
  • すべてのチェックを通過すると、現行のパイプラインが自動的に新しい構成で更新されます。
  • TeamCity からの最新の構成変更による影響を表示できます。
  • 過去のビルドをその時に適用されたビルド構成設定で実行することで、問題を再現してトラブルシューティングを実施できます。
  • 変更が UI とコードのどちらで行われたかに関係なく、各変更の作成者を特定できます。

よくある質問

構成のコード化とは?

構成のコード化は、確立された CI サーバー向けの手法です。この手法には、VCS リポジトリによるバージョン管理のサポート、構成の変更に関する監査の単純化、および構成の移植性の改善などのメリットがあります。UI からポイントアンドクリックで構成するよりも、コードを好むユーザーもいます。

CI/CD プロジェクト設定をコードとして構成するメリットは?

概念としては、UI でビルドを構成するよりもコードを使って構成する方が優れています。リポジトリにコードを保管して変更をより細かく管理できるほか、古いバージョンへのロールバックや変更履歴の確認を行えます。また、設定をコードとして管理して転送する方が、UI ですべてを再構成し直すよりも簡単です。

TeamCity は構成のコード化をどのようにサポートしていますか?

構成をコードとして保管する方法にはいくつかありますが、TeamCity では XML と Kotlin DSL の 2 つの方法をサポートしています。

構成のコード化に Kotlin DSL を使用するメリットは?

プロジェクト設定をコードとして構成する場合、Kotlin DSL には XML よりも多くのメリットがあります。

  • コードの管理機能が強化される。
  • より大規模なプロジェクトがサポートされている。
  • より柔軟な構成が可能である。
  • コードの再利用によって時間を節約できる。

TeamCity を使い始める

プロジェクト構成をコードとして保管するチーム向けの強力な CI/CD