Updates from: 04/21/2022 01:20:17
Service Microsoft Docs article Related commit history on GitHub Change details
platform App Fundamentals Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/app-fundamentals-overview.md
Understanding the user and their concern are the first indicators of how a Teams
* Integrate your app with Teams and other apps, such as Microsoft 365, Microsoft Graph, and more. * Use Developer Portal to configure, manage, and deploy your app.
-<details>
-<summary><b>Learn about Government Community Cloud (GCC)</b></summary>
+#### Government Community Cloud
-Government Community Cloud is a government focused copy of the commercial environment. Department of Defense (DOD) and Federal contractors must meet the stringent cybersecurity and compliance requirements. For this purpose, GCC-High was created to meet the needs of DOD and Federal contractors. GCC-High is a copy of the DOD cloud but exists in its own sovereign environment. The DOD cloud is built for the Department of Defense only.
+Government Community Cloud (GCC) is a government focused copy of the commercial environment. Department of Defense (DOD) and Federal contractors must meet the stringent cybersecurity and compliance requirements. For this purpose, GCC-High was created to meet the needs of DOD and Federal contractors. GCC-High is a copy of the DOD cloud but exists in its own sovereign environment. The DOD cloud is built for the Department of Defense only.
The following table includes Teams features and availability for GCC, GCC-High, and DOD:
platform Apps Publish Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/apps-publish-overview.md
For more information, see [manage your apps in the Teams admin center](/Microsof
### Government Community Cloud (GCC) organizations
-In GCC Teams environments, compliant Microsoft apps are enabled by default. Before publishing an app, however, make sure that all the app's endpoints comply with your GCC organization's requirements.
+In GCC Teams environments, compliant Microsoft apps are enabled by default. Before publishing an app, however, make sure that all the app's endpoints comply with your GCC organization's requirements. For more information, see [Government Community Cloud](../app-fundamentals-overview.md#government-community-cloud).
> [!IMPORTANT] >If your app includes a bot or messaging extension, you must select the **Microsoft Teams for Government** option when setting up a channel between your bot and Teams in Azure. For more information, see [connect a bot to channels](/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0&preserve-view=true).
platform Use CICD Template https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/use-CICD-template.md
Title: Learn how to use CI or CD pipeline templates in GitHub, Azure Devops, and Jenkins for Teams Application Developers
+ Title: Learn how to use CI/CD pipeline templates in GitHub, Azure DevOps, and Jenkins for Teams Application Developers
-description: CICD templates
+description: CI/CD templates
ms.localizationpriority: medium Previously updated : 11/29/2021 Last updated : 04/20/2022
-# CI/CD guide
+# Set up CI/CD pipelines
-TeamsFx helps to automate your development workflow while building Teams application. The document provides tools and templates for you to get started with setting up CI or CD pipelines with GitHub, Azure Devops and Jenkins.
+TeamsFx helps to automate your development workflow while building Teams application. The following are the tools and templates you can use to set up CI/CD pipelines, create workflow templates, and customize CI/CD workflow with GitHub, Azure DevOps, Jenkins, and other platforms. To provision and deploy resources, you can create Azure service principals and publish the Teams app using Teams Developer Portal. To publish Teams app manually, you may leverage [Developer Portal for Teams](https://dev.teams.microsoft.com/home).
-|Tools and Templates|Description|
+
+|Tools and Templates | Description |
|||
-|[teamsfx-cli-action](https://github.com/OfficeDev/teamsfx-cli-action)|GitHub Action that integrates with TeamsFx CLI.|
-|[github-ci-template.yml](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/github-ci-template.yml) and [github-cd-template.yml](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/github-cd-template.yml)| GitHub CI or CD templates for Teams app. |
-|[jenkins-ci-template.Jenkinsfile](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/jenkins-ci-template.Jenkinsfile) and [jenkins-cd-template.Jenkinsfile](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/jenkins-cd-template.Jenkinsfile)|Jenkins CI or CD templates for a Teams app.|
-|[script-ci-template.sh](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-ci-template.sh) and [script-cd-template.sh](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-cd-template.sh)| Script templates for automation outside of GitHub. |
+|[TeamsFx-CLI-Action](https://github.com/OfficeDev/teamsfx-cli-action)|GitHub Action that integrates with TeamsFx CLI.|
+|[Teams Toolkit in Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension)| Visual Studio Code extension that helps you to develop Teams app as well as automation workflows for GitHub, Azure DevOps, and Jenkins. |
+|[TeamsFx CLI](https://www.npmjs.com/package/@microsoft/teamsfx-cli) | Command Line tool that helps you to develop Teams app as well as automation workflows for GitHub, Azure DevOps, and Jenkins.|
+|[script-ci-template.sh](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-ci-template.sh) and [script-cd-template.sh](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-cd-template.sh)| Script templates for automation outside of GitHub, Azure DevOps, or Jenkins. |
-## CI or CD workflow templates in GitHub
-**To include CI or CD workflows to automate Teams app development process in GitHub**:
+## Set up pipelines
-1. Create folder under `.github/workflows`
-1. Copy an one of the following template files:
- * [github-ci-template.yml](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/github-ci-template.yml) for CI workflow.
- * [github-cd-template.yml](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/github-cd-template.yml) for CD workflow.
-1. Customize the workflows that fit your scenarios.
+You can set up pipelines with the following platforms:
-### Customize CI workflow
+1. [Set up pipelines with GitHub](#set-up-pipelines-with-github)
+1. [Set up pipelines with Azure DevOps](#set-up-pipelines-with-azure-devops)
+1. [Set up pipelines with Jenkins](#set-up-pipelines-with-jenkins)
+1. [Set up pipelines for other platforms](#set-up-pipelines-for-other-platforms)
-Perform the following steps to adapt the workflow for your project:
-1. Change the CI flow.
-1. Use npm build script, or customize the way you build the project in automation code.
-1. Use npm test script which returns zero for success, and change the test commands.
+### Set up pipelines with GitHub
-### Customize CD workflow
+To set up pipelines with GitHub for CI/CD:
-Perform the following the steps to customize CD workflow:
+1. Create workflow templates.
-1. By default, the CD workflow is triggered, when new commits are made to the `main` branch.
-1. Create GitHub [repository secrets](https://docs.github.com/en/actions/reference/encrypted-secrets) by environment to hold Azure service principal and Microsoft 365 account login credentials. For more information,see [GitHub Actions](https://github.com/OfficeDev/teamsfx-cli-action/blob/main/README.md).
-1. Change the build scripts if necessary.
-1. Remove the test scripts as required.
+ * Visual Studio Code
+ * TeamsFx CLI
-> [!NOTE]
-> The provision step is not included in the CD template as it's usually executed only once. You can either execute provision within Teams Toolkit, TeamsFx CLI, or using a separate workflow. Ensure to commit after provisioning. The results of provisioning are deposited in `.fx` folder.
+1. Customize CI/CD workflow.
-### Github secrets
-The following table lists all the secrets you need to create environment in GitHub:
+## Create workflow templates with GitHub
-1. Select **Settings**.
-1. Go to **Environments** section.
-1. Select **New environment**.
-1. Enter a name for your environment. The default environment name provided in the template is `test_environment`.
-1. Select **Configure environment**.
-1. Select **Add Secret**.
+**Create workflow templates using the Teams Toolkit in Visual Studio Code**
-The following table lists all the secrets required to create environment:
+1. Create a new Teams app project using Teams Toolkit.
+1. Select **Teams Toolkit** icon in the Visual Studio Code activity bar.
+1. Select **Add CI/CD Workflows**.
+1. Select an environment from the command prompt.
+1. Select **GitHub** as the CI/CD provider.
+1. Select at least one template from these options: CI, CD, Provision, or Publish to Teams.
+1. Open the template and customize the workflows that fit into your scenarios.
+1. Follow the README files under `.github/workflows` to set up the workflow in GitHub.
-|Name|Description|
-|||
-|`AZURE_SERVICE_PRINCIPAL_NAME`|The service principal name of Azure used to provision resources.|
-|`AZURE_SERVICE_PRINCIPAL_PASSWORD`|The password of Azure service principal.|
-|`AZURE_SUBSCRIPTION_ID`|To identify the subscription in which the resources will be provisioned.|
-|`AZURE_TENANT_ID`|To identify the tenant in which the subscription resides.|
-|`M365_ACCOUNT_NAME`|The Microsoft 365 account to create and publish Teams app.|
-|`M365_ACCOUNT_PASSWORD`|The password of the Microsoft 365 account.|
-|`M365_TENANT_ID`|To identify the tenant in which the Teams App will be created/published. This value is optional unless you have a multi-tenant account and you want to use another tenant. For more information, see [how to find your Microsoft 365 tenant ID](/azure/active-directory/fundamentals/active-directory-how-to-find-tenant).|
+**Create workflow templates using TeamsFx CLI**
+
+1. Enter `cd` to your Teams app project directory.
+2. Enter `teamsfx add cicd` command to start the interactive command process.
+3. Select an environment from the command prompt.
+4. Select **GitHub** as the CI/CD provider.
+5. Select at least one template from these options: CI, CD, Provision, or Publish to Teams.
+7. Open the template and customize the workflows that fit into your scenarios.
+8. Follow the README files under `.github/workflows` to set up the workflow in GitHub.
> [!NOTE]
-> Currently, service principal for Azure is used in CI/CD workflows. For more information, see [create Azure service principles](#create-azure-service-principals).
+> If you need to add additional workflow templates, you can follow the same procedure to create workflow template in Visual Studio Code or TeamsFx CLI.
-## Set up CI or CD pipelines with Azure DevOps
+### Customize CI/CD workflow
-You can set up automated pipelines in Azure DevOps, and make a reference on the scripts.
+You can change or remove the test scripts to customize CI/CD workflow:
-Perform the following steps to get started:
+1. By default, the CD workflow is triggered, when new commits are made to the `main` branch.
+1. Change the build scripts if required.
+1. Remove the test scripts as required.
-* [CI Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-ci-template.sh)
-* [CD Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-cd-template.sh)
+### Set up pipelines with Azure DevOps
+
+To set up pipelines with Azure DevOps for CI/CD:
+
+1. Create workflow templates.
+
+ * Visual Studio Code
+ * TeamsFx CLI
+
+1. Customize CI/CD workflow.
-### Set up CI pipeline
-1. Add [CI Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-ci-template.sh) to your Azure DevOps repository, and do necessary customizations as you may infer from the comments in the script file.
-1. Follow the [steps to create your Azure DevOps Pipeline for CI](/azure/devops/pipelines/create-first-pipeline).
-Here is an scenario of a common CI pipeline scripts:
+## Create workflow templates with Azure DevOps
-```yml
-trigger:
-- dev
+**Create workflow templates using the Teams Toolkit in Visual Studio Code**
-pool:
- vmImage: ubuntu-latest
+1. Create a new Teams app project using Teams Toolkit.
+2. Select **Teams Toolkit** icon in the Visual Studio Code activity bar.
+3. Select **Add CI/CD Workflows**.
+4. Select an environment from the command prompt.
+5. Select **Azure DevOps** as CI/CD provider.
+6. Select at least one template from these options: CI, CD, Provision, and Publish to Teams.
+7. Open the template and customize the workflows that fit into your scenarios.
+8. Follow the README files under `.azure/pipelines` to set up the workflow in Azure DevOps.
-steps:
-- task: NodeTool@0
- inputs:
- versionSpec: '14.17.0'
- checkLatest: true
-
-- task: Bash@3
- inputs:
- filePath: './others-script-ci-template.sh'
-```
+**Create workflow templates using the TeamsFx CLI**
+
+1. Enter `cd` to your Teams app project directory.
+2. Enter `teamsfx add cicd` command to start the interactive command process.
+3. Select an environment from the command prompt.
+4. Select **Azure DevOps** as CI/CD provider.
+5. Select at least one template from these options: CI, CD, Provision, or Publish to Teams.
+7. Open the template and customize the workflows that fit into your scenarios.
+8. Follow the README files under `.azure/pipelines` to set up the workflow in Azure DevOps.
+
+> [!NOTE]
+> If you need to add additional workflow templates, you can follow the same procedure to create workflow template in Visual Studio Code or TeamsFx CLI.
+
+### Customize CI workflow
The following are the changes you can make for the script or workflow definition:
-1. Change the CI flow. We default to when a new commit is pushed into the `dev` branch.
-1. Change the way of how to install node and npm.
-1. Use npm build script, or customize the way you build in the automation code.
+1. Use npm build script or customize the way you build in the automation code.
1. Use npm test script which returns zero for success, and change the test commands.
-### Set up CD pipeline
-
-1. Add [CD Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-cd-template.sh) into your Azure DevOps repository, and do necessary customizations as you may infer from the comments in the script file.
-1. Create your Azure DevOps pipeline for CD. For more information,see [create first pipeline](/azure/devops/pipelines/create-first-pipeline). The Pipeline's definition can be referred to the following example definition for CI Pipeline.
-1. Add necessary variables by [Define variables](/azure/devops/pipelines/process/variables), and make them as secrets if necessary.
-
-```yml
-trigger:
-- main -
-pool:
- vmImage: ubuntu-latest
-
-steps:
-- task: NodeTool@0
- inputs:
- versionSpec: '14.17.0'
- checkLatest: true
-
-- task: Bash@3
- env:
- SP_NAME: $(AZURE_SERVICE_PRINCIPAL_NAME)
- SP_PASSWORD: $(AZURE_SERVICE_PRINCIPAL_PASSWORD)
- TENANT_ID: $(AZURE_TENANT_ID)
- AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
- M365_ACCOUNT_NAME: $(M365_ACCOUNT_NAME)
- M365_ACCOUNT_PASSWORD: $(M365_ACCOUNT_PASSWORD)
- inputs:
- filePath: './others-script-cd-template.sh'
-```
+### Customize CD workflow
The following are the changes you can make for the script or workflow definition:
-1. How the CD flow is triggered. By default it happens when new commits are made to the **main** branch.
-1. Change the way of how to install node and npm.
-1. Change the environment name, by default its **staging**.
-1. Ensure you have a npm build script, or customize the way you build in the automation code.
-1. Ensure you have a npm test script which returns zero for success, and/or change the test commands.
+1. Ensure you have a npm build script or customize the way you build in the automation code.
+1. Ensure you have a npm test script which returns zero for success or change the test commands.
-### Pipeline variables for Azure DevOps
+### Set up pipelines with Jenkins
-Perform the following steps to create Pipeline variables in Azure DevOps:
+To set up pipelines with Jenkins for CI/CD:
-1. In the Pipeline editing page, select **Variables** and select **New variable**.
-1. Enter Name or Value pair for your variable.
-1. Toggle the checkbox of **Keep this value secret** if necessary.
-1. Select **OK** to create the variable.
+1. Create workflow templates.
-|Name|Description|
-|||
-|`AZURE_SERVICE_PRINCIPAL_NAME`|The service principal name of Azure used to provision resources.|
-|`AZURE_SERVICE_PRINCIPAL_PASSWORD`|The password of Azure service principal.|
-|`AZURE_SUBSCRIPTION_ID`|To identify the subscription in which the resources are provisioned.|
-|`AZURE_TENANT_ID`|To identify the tenant in which the subscription resides.|
-|`M365_ACCOUNT_NAME`|The Microsoft 365 account for creating and publishing the Teams App.|
-|`M365_ACCOUNT_PASSWORD`|The password of the Microsoft 365 account.|
-|`M365_TENANT_ID`|To identify the tenant in which the Teams App is created or published. This value is optional unless you have a multi-tenant account and you want to use another tenant. Read more on [how to find your Microsoft 365 tenant ID](/azure/active-directory/fundamentals/active-directory-how-to-find-tenant).|
+ * Visual Studio Code
+ * TeamsFx CLI
-## CI or CD pipeline templates in Jenkins
+1. Customize CI/CD workflow.
-To add these templates to your repository, you require the versions of [jenkins-ci-template.Jenkinsfile](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/jenkins-ci-template.Jenkinsfile) and [jenkins-cd-template.Jenkinsfile](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/jenkins-cd-template.Jenkinsfile) to be located in your repository by branch.
+## Create workflow templates with Jenkins
-Also, you need to create CI or CD pipelines in Jenkins which point to the specific `Jenkinsfile` correspondingly.
+**Create workflow templates using the Teams Toolkit in Visual Studio Code**
-Follow the steps to check how to connect Jenkins with different SCM platforms:
+1. Create a new Teams app project using Teams Toolkit.
+2. Select **Teams Toolkit** icon in the Visual Studio Code sidebar.
+3. Select **Add CI/CD Workflows**.
+4. Select an environment from the command prompt.
+5. Select **Jenkins** as CI/CD provider.
+6. Select at least one template from these options: CI, CD, Provision, or Publish to Teams.
+7. Open the template and customize the workflows that fit into your scenarios.
+8. Follow the README files under `.jenkins/pipelines` to set up the workflow with Jenkins.
-1. [Jenkins with GitHub](https://www.jenkins.io/solutions/github/)
-2. [Jenkins with Azure DevOps](https://www.dragonspears.com/blog/ci-cd-with-jenkins-and-azure-devops-services)
-3. [Jenkins with GitLab](https://docs.gitlab.com/ee/integration/jenkins.html)
-4. [Jenkins with Bitbucket](https://medium.com/ampersand-academy/integrate-bitbucket-jenkins-c6e51103d0fe)
+**Create workflow templates using TeamsFx CLI**
-### Customize CI pipeline
+1. Enter `cd` to your Teams app project directory.
+2. Enter `teamsfx add cicd` command to start the interactive command process.
+3. Select an environment from the command prompt.
+4. Select **Jenkins** as CI/CD provider.
+5. Select at least one template from these options: CI, CD, Provision, or Publish to Teams.
+7. Open the template and customize the workflows that fit into your scenarios.
+8. Follow the README files under `.jenkins/pipelines` to set up the workflow with Jenkins.
-The following are some of the changes you can make to adapt your project:
+> [!NOTE]
+> If you need to add additional workflow templates, you can follow the same procedure to create workflow template in Visual Studio Code or TeamsFx CLI.
-1. Rename the template file to **Jenkinsfile**, and place it under the target branch, for example, the **dev** branch.
-1. Change how the CI flow is triggered. We default to use the triggers of **pollSCM** when a new change is pushed into the **dev** branch.
-1. Ensure you have a npm build script, or customize the way you build in the automation code.
-1. Ensure you have a npm test script which returns zero for success, and/or change the test commands.
+### Customize CI workflow
-### Customize CD pipeline
+The following are some of the changes you can make to your project:
+
+1. Change how the CI flow is triggered. The default is to use the triggers of **pollSCM** when a new change is pushed into the **dev** branch.
+1. Ensure you have a npm build script or customize the way you build in the automation code.
+1. Ensure you have a npm test script which returns zero for success or change the test commands.
++
+### Customize CD workflow
Perform the following steps to customize the CD pipeline:
-1. Rename the template file to `Jenkinsfile`, and place it in the target branch, for example, the `main` branch.
-1. Change the CD flow. We default to use the triggers of `pollSCM` when a new change is pushed into the `main` branch.
-1. Create Jenkins [pipeline credentials](https://www.jenkins.io/doc/book/using/using-credentials/) to hold Azure service principal and Microsoft 365 account login credentials.
+1. Change the CD flow. The default is to use the triggers of `pollSCM` when a new change is pushed into the `main` branch.
1. Change the build scripts if necessary. 1. Remove the test scripts if you don't have tests.
-### Credentials for Jenkins
-Follow [using-credentials](https://www.jenkins.io/doc/book/using/using-credentials/) to create credentials on Jenkins.
+### Set up pipelines for other platforms
-|Name|Description|
-|||
-|`AZURE_SERVICE_PRINCIPAL_NAME`|The service principal name of Azure used to provision resources.|
-|`AZURE_SERVICE_PRINCIPAL_PASSWORD`|The password of Azure service principal.|
-|`AZURE_SUBSCRIPTION_ID`|To identify the subscription in which the resources will be provisioned.|
-|`AZURE_TENANT_ID`|To identify the tenant in which the subscription resides.|
-|`M365_ACCOUNT_NAME`|The Microsoft 365 account for creating and publishing the Teams App.|
-|`M365_ACCOUNT_PASSWORD`|The password of the Microsoft 365 account.|
-|`M365_TENANT_ID`|To identify the tenant in which the Teams App is created or published. The value is optional unless you have a multi-tenant account and you want to use another tenant. Read more on [how to find your Microsoft 365 tenant ID](/azure/active-directory/fundamentals/active-directory-how-to-find-tenant).|
-
-## Get started guide for other platforms
-
-You can follow the listed pre-defined example bash scripts to build and customize CI or CD pipelines on other platforms:
+You can follow the predefined listed example bash scripts to build and customize CI/CD pipelines on the other platforms:
* [CI Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-ci-template.sh) * [CD Scripts](https://github.com/OfficeDev/TeamsFx/blob/main/docs/cicd_insider/others-script-cd-template.sh)
The scripts are based on a cross-platform TeamsFx command line tool [TeamsFx-CLI
> [!NOTE] >
-> * To enable `@microsoft/teamsfx-cli` running in CI mode, turn on `CI_ENABLED` by `export CI_ENABLED=true`. In CI mode, `@microsoft/teamsfx-cli` is friendly for CI or CD.
+> * To enable `@microsoft/teamsfx-cli` running in CI mode, turn on `CI_ENABLED` by `export CI_ENABLED=true`. In CI mode, `@microsoft/teamsfx-cli` is friendly for CI/CD.
> * To enable `@microsoft/teamsfx-cli` running in the non-interactive mode, set a global config with command: `teamsfx config set -g interactive false`. In the non-interactive mode, `@microsoft/teamsfx-cli` does not prompt for inputs.
-Ensure to set Azure and Microsoft 365 credentials in your environment variables safely. For example if you are using GitHub as your source code repository. For more information, see [Github Secrets](https://docs.github.com/en/actions/reference/encrypted-secrets).
+Ensure to set up Azure and Microsoft 365 credentials in your environment variables safely. For example, if you are using GitHub as your source code repository, see [Github Secrets](https://docs.github.com/en/actions/reference/encrypted-secrets).
+
-## Create Azure service principals
+## Provision and deploy resources
To provision and deploy resources targeting Azure inside CI/CD, you must create an Azure service principal for use. Perform the following steps to create Azure service principals: 1. Register an Microsoft Azure Active Directory (Azure AD) application in single tenant.
-2. Assign a role to your Azure AD application to access your Azure subscription, and `Contributor` role is recommended.
+2. Assign a role to your Azure AD application to access your Azure subscription. The `Contributor` role is recommended.
3. Create a new Azure AD application secret. > [!TIP]
-> Save your tenant id, application id(AZURE_SERVICE_PRINCIPAL_NAME), and the secret(AZURE_SERVICE_PRINCIPAL_PASSWORD) for future use.
+> Save your tenant id, application id (AZURE_SERVICE_PRINCIPAL_NAME), and the secret (AZURE_SERVICE_PRINCIPAL_PASSWORD) for future use.
-For more information, see [Azure service principals guidelines](/azure/active-directory/develop/howto-create-service-principal-portal). The following are the three ways to create service principal:
+For more information, see [Azure service principals guidelines](/azure/active-directory/develop/howto-create-service-principal-portal). The following are the three ways to create service principals:
* [Microsoft Azure portal](/azure/active-directory/develop/howto-create-service-principal-portal) * [Windows PowerShell](/azure/active-directory/develop/howto-authenticate-service-principal-powershell)
For more information, see [Azure service principals guidelines](/azure/active-di
## Publish Teams app using Teams Developer Portal
-If there's any changes related to Teams app's manifest file, you may want to publish the Teams app again to update the manifest.
+If there are any changes related to Teams app's manifest file, you can update the manifest and publish the Teams app again.
To publish Teams app manually, you may leverage [Developer Portal for Teams](https://dev.teams.microsoft.com/home).
Perform the following steps to publish your app:
1. Sign in to [Developer portal for Teams](https://dev.teams.microsoft.com) using the corresponding account. 2. Import your app package in zip by selecting `App -> Import app -> Replace`. 3. Select the target app in app list.
-4. Publish your app by selecting `Publish -> Publish to your org`
+4. Publish your app by selecting `Publish -> Publish to your org`.
### See also
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Discover Microsoft Teams platform features that are generally available (GA) and
| Date | Update | Find here | | | | |
+|04/20/2022 | Set up CI/CD pipelines | Tools and SDKs > Teams Toolkit for Visual Studio Code > [Set up CI/CD pipelines](toolkit/use-CICD-template.md)|
|04/19/2022 | Upload your app in Microsoft Teams | Distribute your app > [Upload your app](concepts/deploy-and-publish/apps-upload.md)| |04/06/2022| Share to Teams from personal app or tab (developer preview) | Integrate with Teams > Share to Teams > [Share to Teams from personal app or tab](concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md) | |04/01/2022| Introduced step-by-step guide to create Teams conversational bot| Build bots > Bot conversations > Channel and group conversations > [Step-by-step guide to create Teams conversational bot](sbs-teams-conversation-bot.yml) |
Microsoft Teams platform features that are available to all app developers.
| **Date** | **Update** | **Find here** | | -- | | -|
+|04/20/2022 | Set up CI/CD pipelines | Tools and SDKs > Teams Toolkit for Visual Studio Code > [Set up CI/CD pipelines](toolkit/use-CICD-template.md)|
|04/19/2022 | Upload your app in Microsoft Teams | Distribute your app > [Upload your app](concepts/deploy-and-publish/apps-upload.md)| |04/01/2022| Introduced step-by-step guide to create Teams conversational bot| Build bots > Bot conversations > Channel and group conversations > [Step-by-step guide to create Teams conversational bot](sbs-teams-conversation-bot.yml) | |03/30/2022| Updated the Get started module with Blazor app using tabs and bots| Get started > [Build your first app using Blazor](sbs-gs-blazorupdate.yml)|