TeamCity の GitHub VCS 統合

TeamCity は GitHub.com と GitHub Enterprise との完全統合を実現するため、合理化された開発者ワークフローを維持しながら各コミットの品質を検証できます。個人的にフィーチャーブランチの作業を進めている場合でも、コミュニティの貢献者にリポジトリをフォークさせて変更をアップストリームに戻してもらう場合でも、TeamCity を使って新しいコードの自動ビルドとテストを実行できます。

ユーザーのワークフローに適合

強力な CI/CD プラットフォームである TeamCity には、ユーザーのプロセスに適合できる柔軟性が備わっています。フィーチャーブランチでの作業、リリース候補へのタグ付け、GitHub での完全ホスト、複数のバージョン管理システムへの分散など、ニーズに合った自動化パイプラインを構成できます。

以下で TeamCity のカスタマイズ性についてお読みください。

必要なすべての情報を必要な場所で提供

最新のコード変更のステータスは簡単にチェックできるようにしなければなりません。CI/CD プラットフォームと GitHub を統合することで、コミットや関連する GitHub 課題の詳細を TeamCity から閲覧したり、GitHub からビルドステータスやテスト結果をチェックしたりできます。ユーザー次第でお好みの操作を行えます。

以下で TeamCity のレポート機能についてお読みください。

実践に役立つテストインサイト

ビルド、テスト、デプロイで問題が発生することは避けられませんが、パイプラインを再起動できるまでの長い遅延は回避できます。TeamCity はエラー発生時に問題をデバッグするのに必要な情報を提供するため、直ちに修正に取り掛かることができます。

以下で TeamCity のテストインテリジェンスについてお読みください。

GitHub 対応の高度な CI/CD で生産性をアップ

プロジェクトの規模に関わらず、作業と変更内容の検証を同時に進めると生産性が高まり、より快適に開発できるようになります。フィードバックループは短いほど良いです。そのため、CI/CD プロセスの自動化はあらゆるソフトウェア開発プロジェクトに欠かせません。

TeamCity はさまざまな方法で開発プロセスを高速化します。

  • パイプラインを最適化して先行するビルドのアーティファクトを再利用することで、パイプラインに最低限必要なステップのみを実行します。そのため、すべてをゼロからビルドし直すのに無駄な時間を費やす必要はありません。
  • インテリジェントなテスト並列化により、自動テストの実行に必要な時間を短縮できます。
  • リアルタイムのレポートと通知により、ビルドの完了を待たずにコードの問題を把握できます。
  • スマートエラー解析でビルドを中断させた実際のコミットとその作成者をすぐに特定できるため、イテレーションを高速化できます。
  • テスト履歴では、プロジェクトで問題となっている箇所をより詳しく理解できます。傾向を解析し、コードの異常動作を検出できます。

TeamCity ではソフトウェア開発ワークフローを補完するカスタムパイプラインを柔軟に構成できるため、チーム、個人、およびコミュニティのプロジェクトで DevOps のベストプラクティスを実践し、自動化された継続的インテグレーションとデリバリーのメリットを大いに生かすことができます。

GitHub ベースの開発を高速化しませんか?

GitHub 対応の CI/CD 統合は TeamCity のオンプレミスバージョンとクラウドバージョンの両方で提供されているため、ビルドエージェントの場所の管理に柔軟性があります。また、インフラストラクチャに関わる考慮事項を気にすることなく、優れたソフトウェアの制作に専念できます。

主な GitHub 統合機能

シームレスな認証

TeamCity On-Premises と TeamCity Cloud では、GitHub による認証を完全に制御できます。GitHub にサインインする際に新しいアカウントを自動的に作成する、アクセスを組織のメンバーに制限する、GitHub のロールとは別個に TeamCity のユーザー権限を管理するなど、各種の操作を行えます。

プルリクエストのネイティブサポート

TeamCity は GitHub のプルリクエストが発行されたことを検出し、以下のような各種の条件に基づいて CI/CD チェックをトリガーできます。

  • ソースとターゲットブランチの名前
  • プルリクエストの作成者と組織内のロール
  • 特定のファイルおよびディレクトリの変更
  • コミットメッセージのテキスト

自動チェックの進捗と結果は GitHub UI 内で閲覧可能で、すべてのチェックが正常に完了した場合は TeamCity にプルリクエストを自動的にマージさせることができます。

ステータスレポート

TeamCity はフィードバックが期待されるすべての場所にフィードバックを提供します。TeamCity UI 内では、ビルド、テスト、およびデプロイに関する進捗の最新情報をリアルタイムで確認できます。それぞれの情報は GitHub にも送信されるため、コミットやプルリクエストのステータスをいつでも確認することができます。

より迅速に通知できるよう、TeamCity は Slack、IDE、ブラウザー、およびメールによるアラートを組み込みでサポートしています。また、TeamCity プラグインでは Telegram から Discord まで多数の追加オプションを提供しています。

どんなに複雑でスケールの高い CI/CD パイプラインも自動化

類のないカスタマイズ性と制御機能

TeamCity は各チームの開発ワークフローへスムーズに組み込まれ、チームの効率を高めるように設計されています。このソリューションはフィーチャーブランチ、リリースブランチ、プルリクエスト、モノリポ、または種類の異なる複数の VCSなど、どのプロセスを新機能のリリースに採用していても、プロセスをより高速かつ快適にします。

TeamCity はすべてのプログラミング言語をサポートし、すべてのプラットフォームで動作し、すべての一般的なビルドおよびテストフレームワークと統合できます。種類の異なる複数のトリガーを使って CI/CD を自動化し、トリガーによって設定されたパラメーターやパイプライン自体のあるポイントで定義されているパラメーターに基づいて動的にビルド、テスト、およびデプロイ手順をカスタマイズできます。

TeamCity ではビルド完了後に変更を自動的にターゲットブランチにマージする、ビルド番号を Git タグとして記録する、GitHub でコミットまたはプルリクエストのステータスを更新する、ビルドアーティファクトをコンテナーレジストリに公開するといった処理を実行できます。どんなものに取り組んでいても、TeamCity ならビルドできます!

実践に役立つテストインサイト

TeamCity は他の CI/CD ツールとは異なり、テストを理解します。

  • テストが失敗した場合、TeamCity はエラーの原因となったコミットとそのコミットを行った GitHub ユーザーを自動的に特定します。
  • ビルドログ、スタックトレース、ビルドアーティファクト、スクリーンショットなど、失敗したテストの詳細を閲覧できるため、より迅速にデバッグに取り掛かることができます。
  • テスト履歴は、不安定なテストの特定、よくビルドを中断させている変更の確認、テスト時間の差の検出、および特定のテストが最初に失敗し始めた正確な時間の特定に役立ちます。
  • 信頼性のないテストの調査をユーザーに割り当て、そのエラーを一時的にミュートすることができます。
  • コードカバレッジと静的解析は、コードの潜在的な問題を確認するのに役立ちます。

何よりも優れているのは、テストを Docker で実行している場合でもこれらの機能を使用できることです。

FAQ: TeamCity と GitHub による継続的インテグレーション

TeamCity は 他の VCS から GitHub への移行に役立ちますか?

TeamCity は移行そのものを実施するのに適したツールではありませんが、移行中に中断なく CI/CD を実行できるようにします。すべてのリポジトリを TeamCity の VCS ルートに追加すると、コードがまだ古い VCS 内にある場合でも、新しい VCS にある場合でも、その中間にある場合でも、コード全体をビルドプロセスで使用できるようになります。

TeamCity は GitHub より優れていますか?

TeamCity と GitHub の用途は異なるため、どちらか片方が優れていると言うのは不適切です。TeamCity は CI/CD パイプラインに的を絞ったものであり、GitHub Actions よりも多くの機能を備えていますが、GitHub が提供しているバージョン管理、コードレビュー、またはプロジェクト管理の機能は備わっていません。

TeamCity の GitHub との統合機能は無料ですか?

はい。TeamCity の GitHub との統合機能は無料です。無料のオンプレミスバージョンである TeamCity Professional は商用目的に制限なくご利用いただけます。

コードを GitHub にコミットせずに TeamCity でテストできますか?

はい。コードは GitHub にコミットせずに TeamCity でテストできます。そのためには、Git パッチを作成して TeamCity にアップロードしてから、個人のビルドを実行できます。または、IDE のプラグインを使用することもできます。