このガイドでは、TeamCity にまったく新しい開発者向けに TeamCity で Python プロジェクトを構築する方法を説明します。
前提条件
We recommend that you have a basic understanding of Python and PyTest.
詳細については、Python ドキュメントをご覧ください。
TeamCity がリポジトリに正しく接続されると、次のダイアログが表示されます。
Create Project From URL ダイアログには、プロジェクト名と最初のビルド構成名を変更するオプションがあります。
注意: より新しいバージョンの TeamCity には、Default branch と Branch specification のフィールドもあります。これらは TeamCity が構築するブランチを指定するために使用します。 ここでは何も変更しません。
Proceed をクリックすると、TeamCity は自動的にバージョン管理リポジトリをスキャンし、サポートされているテクノロジー(この場合 Python)を検出します。
TeamCity がリポジトリ内の .py ファイルを検出すると、自動的にプロジェクトのビルドステップを 1 つ以上提案します。 このチュートリアルで使用されているリポジトリの場合、自動検出のビルドステップは main.py または setup.py を実行しようとしますが、これが好ましくない可能性があります。
それよりも、Python プロジェクトにデフォルトとして次のビルドステップを追加する方が合理的です。
自動検出のビルドステップを選択するのではなく、これらの 2 つのビルドステップを追加しましょう。
まず、Flake8 リントステップを TeamCity プロジェクトに追加します。
ビルドステップが正しく作成されると、次のダイアログが表示されます。
次に、プロジェクトに PyTest ステップを追加しましょう。
これで、最初のビルドを実行できるようになりました。
注意: TeamCity Cloud をご利用の場合は、ビルドエージェントが利用できるようになるまで 2 分ほどかかることがあります。 この間、ビルドは利用可能なエージェントに拾い上げられるまでキューで待機します。
ローカルのビルドエージェントを使うオンプレミス型の TeamCity をご利用の場合、ビルドは直ちに開始します。
ビルドが開始すると、ビルドの概要ページにリダイレクトされ、ビルドに関連するリアルタイムデータを表示する Build Log タグが開きます。
ビルドが実行したら、ビルドの概要ページにリダイレクトされます。 テスト結果とインスペクションを確認するか、ビルドの概要ページから詳細なビルドログを閲覧できます。
Python リポジトリが 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 は外部プラットフォームにプルリクエストがないかチェックし、構成ルールに一致しているプルリクエストをビルドするようにトリガーします。
注意: 公開リポジトリでは誰もが危害のあるコードをプッシュできるため、それらがビルドされてしまわないように、この機能の使用には十分な注意が必要です。
When using the pull requests feature in combination with Azure DevOps, Bitbucket Server, GitHub, or GitLab, it also makes sense to use the Commit Status Publisher build feature. この機能は対応するプラットフォームのプルリクエストのステータスをビルド結果で更新します。
ビルド結果を GitHub にレポートするように TeamCity をセットアップするには、以下の手順を実行する必要があります。
TeamCity がビルドを実行したら、変更によってビルドが失敗していないかどうかを直接 GitHub の Pull Request タブで簡単に確認できるようになります(緑のチェックマーク)。