CI/CD パイプラインを設定する
TeamsFx は、Microsoft Teams アプリケーションの構築中に開発ワークフローを自動化するのに役立ちます。 CI/CD パイプラインを設定するためのツールとテンプレートは、GitHub、Azure DevOps、Jenkins、およびその他のプラットフォームを使用して、ワークフロー テンプレートを作成し、CI/CD ワークフローをカスタマイズします。 リソースをプロビジョニングするには、Azure サービス プリンシパルを作成し、プロビジョニング パイプラインを使用するか、bicep ファイルを使用して手動で実行します。 Teams アプリを発行するには、発行パイプラインを使用するか、 Teams 用開発者ポータルを利用して手動で実行できます。
ツールとテンプレート
ツールとテンプレート | 説明 |
---|---|
TeamsFx-CLI-Action | TeamsFx CLI と統合される GitHub アクション。 |
Visual Studio Code 用 Microsoft Teams ツールキット | GitHub、Azure DevOps、Jenkins の Teams アプリと自動化ワークフローを開発するのに役立つ Microsoft Visual Studio Code 拡張機能。 |
CLI 用 Microsoft Teams Toolkit | Teams アプリや、GitHub、Azure DevOps、および Jenkins の自動化ワークフローの開発に役立つコマンドライン ツール。 |
github/ci.yml github/cd.azure.yml github/cd.spfx.yml github/provision.azure.yml github/provision.spfx.yml github/publish.yml |
GitHub の自動化用テンプレート。 |
azdo/ci.yml azdo/cd.azure.yml azdo/cd.spfx.yml azdo/provision.azure.yml azdo/provision.spfx.yml azdo/publish.yml |
Azure DevOps の自動化用テンプレート。 |
jenkins/Jenkinsfile.ci jenkins/Jenkinsfile.azure.cd jenkins/Jenkinsfile.spfx.cd jenkins/Jenkinsfile.azure.provision jenkins/Jenkinsfile.spfx.provision jenkins/Jenkinsfile.publish |
Jenkins の自動化用テンプレート。 |
others/ci.sh others/cd.azure.sh others/cd.spfx.sh others/provision.azure.sh others/provision.spfx.sh others/publish.sh |
GitHub、Azure DevOps、または Jenkins 以外の自動化用のスクリプト テンプレート。 |
CI/CD パイプラインを設定する
パイプラインは、次のプラットフォームで設定できます。
- GitHub を使用してワークフローを設定する
- Azure DevOps を使用してパイプラインを設定する
- Jenkins を使用してパイプラインを設定する
- 他のプラットフォームのパイプラインを設定する
ワークフロー テンプレートの種類
TeamsFx では、次の 4 種類のワークフロー テンプレートがサポートされています。
- CI: コードのチェックアウト、ビルド、テストの実行に役立ちます。
- CD: コードのチェックアウト、ビルド、テスト、クラウドへのデプロイに役立ちます。
- プロビジョニング: クラウドと Teams アプリの登録でリソースを作成または更新するのに役立ちます。
- 発行: Teams アプリをテナントに発行するのに役立ちます。
資格情報を準備する
サインイン資格情報の 2 つのカテゴリは、CI/CD ワークフローに関係します。
- Microsoft 365: プロビジョニング、発行、SPFx ベースのプロジェクトの CD ワークフローを実行するために、Microsoft 365 資格情報が必要です。
- Azure: Azure でホストされているプロジェクトのプロビジョニングと CD ワークフローを実行するために、Azure 資格情報が必要です。
注:
プロビジョニング ワークフローを実行する前に、環境変数または env/.env.*
ファイルに Azure サブスクリプション ID を設定する必要があります。 使用される変数名は です AZURE_SUBSCRIPTION_ID
。 また、既定ではファイルによって.gitignore
無視されるため、ファイルenv/.env.*
をコミットして Git リポジトリにプッシュするか、パイプラインの環境変数を設定することを忘れないでください。
名前 | 説明 |
---|---|
AZURE_SERVICE_PRINCIPAL_NAME | リソースのプロビジョニングに使用される Azure のサービス プリンシパル名。 |
AZURE_SERVICE_PRINCIPAL_PASSWORD | Azure サービス プリンシパルのパスワード。 |
AZURE_SUBSCRIPTION_ID | リソースをプロビジョニングするサブスクリプションを識別する。 |
AZURE_TENANT_ID | サブスクリプションが存在するテナントを識別する。 |
M365_ACCOUNT_NAME | Teams アプリを作成および発行するための Microsoft 365 アカウント。 |
M365_ACCOUNT_PASSWORD | Microsoft 365 アカウントのパスワード。 |
M365_TENANT_ID | Teams アプリが作成または発行されるテナントを特定する。 マルチテナント アカウントがあり、別のテナントを使用する場合を除き、この値は省略可能です。 Microsoft 365 テナント ID を見つける方法の詳細については、こちらをご覧ください。 |
注:
- 現在、MICROSOFT 365 の非対話型認証スタイルは CI/CD ワークフローで使用されるため、Microsoft 365 アカウントにテナントで十分な特権があり、多要素認証やその他の高度なセキュリティ機能が有効になっていないことを確認してください。 ワークフローで使用される資格情報に対して多要素認証とセキュリティの既定値が無効になっていることを確認するには、「 Microsoft 365 資格情報の構成 」を参照してください。
- 現在、Azure のサービス プリンシパルは CI/CD ワークフローで使用され、使用する Azure サービス プリンシパルを作成するには、こちらを参照 してください。
ホストの種類
テンプレートは、プロビジョニングおよび CD ワークフロー テンプレートがコピーに分割されるホストの種類 (Azure または SPFx) によって異なります。 CI、発行ワークフロー テンプレートはホスト型に依存しません。 Azure でホストされているプロジェクトで作業している場合は、ファイル名がインフィックスの azure
テンプレートをダウンロードします。 SPFx でホストされているプロジェクトで作業している場合は、ファイル名 spfx
が infix のテンプレートをダウンロードします。
GitHub を使用してワークフローを設定する
CI/CD で GitHub を使用してパイプラインを設定するには:
- CI/CD ワークフローを作成します。
- CI/CD ワークフローをカスタマイズします。
CI/CD ワークフローを作成する
- [ツールとテンプレート] から対応するテンプレート ファイルをダウンロードします。
- 必要に応じて、ダウンロードしたテンプレート ファイルの名前を変更します。
- それらを の下
.github/workflows
に置きます。これは、GitHub Actionsの指定されたフォルダーです。 - これらのテンプレート ファイルをコミットしてリモート リポジトリにプッシュします。
- ワークフローに必要な 暗号化されたシークレット を追加します。
- ワークフローをトリガーします。 GitHub でワークフローをトリガーする方法の 詳細 を確認してください。
CI ワークフローをカスタマイズする
CI ワークフローをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、ブランチに対して
dev
新しいプル要求が作成されると、CI ワークフローがトリガーされます。 - プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
CD ワークフローをカスタマイズする
CD ワークフローをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、新しいコミットがブランチに
main
プッシュされたときに CD ワークフローがトリガーされます。 - 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。 - プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
プロビジョニングと発行ワークフローをカスタマイズする
プロビジョニングと発行ワークフローをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、ワークフローは手動でトリガーされます。
- 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。
Azure DevOps を使用してパイプラインを設定する
CI/CD で Azure DevOps を使用してパイプラインを設定するには:
- CI/CD パイプラインを作成します。
- CI/CD パイプラインをカスタマイズします。
CI/CD パイプラインを作成する
- [ツールとテンプレート] から対応するテンプレート ファイルをダウンロードします。
- 必要に応じて、ダウンロードしたテンプレート ファイルの名前を変更します。
- それらを の下
.azure/pipelines
に置きます。これは、Azure Pipelines の従来のフォルダーです。 - これらのテンプレート ファイルをコミットしてリモート リポジトリにプッシュします。
- 「初めての Azure DevOps パイプラインを作成する」に従って、対応する Azure DevOps パイプラインを作成します。
- パイプラインに必要な Azure DevOps パイプライン変数 を追加します。
- パイプラインを自動的にトリガーするか、手動で、またはカスタマイズします (yml ファイルの または
pr:
セクションを確認trigger:
してトリガーを見つけます)。 Azure DevOps のトリガーの詳細については、「Azure パイプラインのトリガー」を参照してください。
CI パイプラインをカスタマイズする
CI パイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、ブランチに対して
dev
新しいプル要求が作成されると、CI パイプラインがトリガーされます。 - プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
CD パイプラインをカスタマイズする
CD パイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、新しいコミットがブランチに
main
プッシュされたときに CD パイプラインがトリガーされます。 - 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。 - プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
プロビジョニングパイプラインと発行パイプラインをカスタマイズする
プロビジョニングと発行のパイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、ワークフローは手動でトリガーされます。
- 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。
Jenkins を使用してパイプラインを設定する
CI/CD で Jenkins を使用してパイプラインを設定するには:
- CI/CD パイプラインを作成します。
- CI/CD パイプラインをカスタマイズします。
CI/CD パイプラインを作成する
- [ツールとテンプレート] から対応するテンプレート ファイルをダウンロードします。
- 必要に応じて、ダウンロードしたテンプレート ファイルの名前を変更します。
- それらを の下に
.jenkins/pipelines
置きます。これは、Jenkins Pipelines の従来のフォルダーにすることができます。
CI パイプラインをカスタマイズする
CI パイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、CI パイプラインは定期的にトリガーされます。
- プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
CD パイプラインをカスタマイズする
CD パイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、CD パイプラインは定期的にトリガーされます。
- 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。 - プロジェクトをビルドするためのスクリプトを追加する: 既定では、
Build the project
ステップはコメントされます。 - 単体テストを実行するためのスクリプトの追加: 既定では、
Run unit test
手順はコメントされます。
プロビジョニングパイプラインと発行パイプラインをカスタマイズする
プロビジョニングと発行のパイプラインをカスタマイズするには、次の操作を行います。
- トリガーを変更する: 既定では、パイプラインは定期的にトリガーされます。
- 環境変数
TEAMSFX_ENV_NAME
の値を変更する: 既定では、値は ですdev
。 - 環境変数
TEAMSFX_CLI_VERSION
の値を変更する: 既定では、値は です2.*
。
他のプラットフォームのパイプラインを設定する
ツールとテンプレートの定義済みの bash スクリプトの例に従って、他のプラットフォームで CI/CD パイプラインを構築およびカスタマイズできます。
これらのスクリプトは、クロスプラットフォームの TeamsFx コマンド ライン ツール TeamsFx-CLI に基づいています。 npm install -g @microsoft/teamsfx-cli
でインストールして、ドキュメントに従ってスクリプトをカスタマイズできます。
注:
- CI モードで
@microsoft/teamsfx-cli
の実行を有効にするには、export CI_ENABLED=true
を使用してCI_ENABLED
をオンにします。 CI モードでは、@microsoft/teamsfx-cli
は CI/CD に適しています。 - 非対話型モードで
@microsoft/teamsfx-cli
の実行を有効にするには、次のコマンドを使用してグローバル構成を設定します:teamsfx config set -g interactive false
。 非対話型モードでは、@microsoft/teamsfx-cli
入力を求められません。
必ず環境変数に Azure と Microsoft 365 の資格情報を安全に設定してください。 たとえば、ソース コード リポジトリとして GitHub を使用している場合は、「GitHub シークレット」を参照してください。
使用する Azure サービス プリンシパルを作成する方法
CI/CD 内で Azure を対象とするリソースをプロビジョニングおよび展開するには、使用する Azure サービス プリンシパルを作成する必要があります。
Azure サービス プリンシパルを作成するには、次の手順に従います。
- シングル テナントにMicrosoft Entra アプリケーションを登録します。
- Azure サブスクリプションにアクセスするには、Microsoft Entra アプリケーションにロールを割り当てます。
Contributor
ロールをお勧めします。 - 新しいMicrosoft Entraアプリケーション シークレットを作成します。
ヒント
今後使用できるように、テナント ID、アプリケーション ID (AZURE_SERVICE_PRINCIPAL_NAME)、シークレット (AZURE_SERVICE_PRINCIPAL_PASSWORD) を保存します。
詳細については、「Azure サービス プリンシパルのガイドライン」を参照してください。 サービス プリンシパルを作成する 3 つの方法を次に示します。
Teams 開発者ポータルを使用して Teams アプリを発行する
Teams アプリのマニフェスト ファイルに関連する変更がある場合は、マニフェストを更新して、Teams アプリをもう一度発行できます。 Teams アプリを手動で発行するには、 Teams 用開発者ポータルを使用できます。
アプリを発行するには、次の手順に従います。
- 対応するアカウントを使用して Teams 開発者ポータルにサインインします。
- zip 形式でアプリ パッケージをインポートし、[アプリの>インポート>][置換] を選択します。
- アプリの一覧でターゲット アプリを選択します。
- アプリを発行するには、[発行>] を選択して組織に発行します。
関連項目
Platform Docs
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示