Configurar pipelines de CI/CD

O TeamsFx ajuda a automatizar seu fluxo de trabalho de desenvolvimento durante a criação do aplicativo Microsoft Teams. As ferramentas e modelos para configurar pipelines de CI/CD são criar modelos de fluxo de trabalho e personalizar o fluxo de trabalho de CI/CD com GitHub, Azure DevOps, Jenkins e outras plataformas. Para provisionar recursos, você pode criar entidades de serviço do Azure e usar o pipeline Provisionar ou fazê-lo manualmente usando arquivos bicep. Para publicar o aplicativo teams, você pode usar o pipeline Publicar ou fazê-lo manualmente aproveitando o Portal do Desenvolvedor para o Teams.

Ferramentas e Modelos

Ferramentas e Modelos Descrição
TeamsFx-CLI-Action Ação do GitHub que se integra à CLI do TeamsFx.
Kit de Ferramentas do Microsoft Teams para Visual Studio Code A Microsoft Visual Studio Code extensão que ajuda você a desenvolver fluxos de trabalho de aplicativos e automação do Teams para GitHub, Azure DevOps e Jenkins.
Kit de Ferramentas do Microsoft Teams para CLI Ferramenta de linha de comando que ajuda você a desenvolver fluxos de trabalho de automação e aplicativos do Teams para GitHub, Azure DevOps e Jenkins.
github/ci.yml
github/cd.azure.yml
github/cd.spfx.yml
github/provision.azure.yml
github/provision.spfx.yml
github/publish.yml
Modelos para automação no GitHub.
azdo/ci.yml
azdo/cd.azure.yml
azdo/cd.spfx.yml
azdo/provision.azure.yml
azdo/provision.spfx.yml
azdo/publish.yml
Modelos para automação no Azure DevOps.
jenkins/Jenkinsfile.ci
jenkins/Jenkinsfile.azure.cd
jenkins/Jenkinsfile.spfx.cd
jenkins/Jenkinsfile.azure.provision
jenkins/Jenkinsfile.spfx.provision
jenkins/Jenkinsfile.publish
Modelos para automação no Jenkins.
outros/ci.sh
outros/cd.azure.sh
outros/cd.spfx.sh
outros/provision.azure.sh
outros/provision.spfx.sh
outros/publish.sh
Modelos de script para automação fora do GitHub, Azure DevOps ou Jenkins.

Configurar pipelines

Você pode configurar pipelines com as seguintes plataformas:

  1. Configurar fluxos de trabalho com o GitHub
  2. Configurar pipelines com o Azure DevOps
  3. Configurar pipelines com o GitHub
  4. Configurar pipelines para outras plataformas

Tipos de modelo de fluxo de trabalho

O TeamsFx dá suporte a quatro tipos de modelos de fluxo de trabalho:

  • CI: ajudar o código de checkout, a compilação e o teste de execução.
  • CD: ajudar o código de check-out, compilar, testar e implantar na nuvem.
  • Provisionamento: ajuda a criar ou atualizar recursos em registros de aplicativos do Teams e na nuvem.
  • Publicar: Ajuda a publicar o aplicativo do Teams para locatários.

Preparar credenciais

Duas categorias de credenciais de entrada estão envolvidas em fluxos de trabalho de CI/CD:

  • Microsoft 365: as credenciais do Microsoft 365 são necessárias para executar os fluxos de trabalho de CD de projetos baseados em Provision, Publish e SPFx.
  • Azure: as credenciais do Azure são necessárias para executar os fluxos de trabalho de Provisionamento e CD de projetos hospedados do Azure.

Observação

A ID da assinatura do Azure é necessária para ser definida em variável de ambiente ou env/.env.* arquivos antes de executar fluxos de trabalho provisionar. O nome da variável usado é AZURE_SUBSCRIPTION_ID. Além disso, não se esqueça de confirmar e enviar arquivos env/.env.* por push para repositórios Git ou definir variáveis de ambiente de pipelines, pois eles são ignorados por arquivo por .gitignore padrão.

Nome Descrição
AZURE_SERVICE_PRINCIPAL_NAME O nome da entidade de serviço do Azure usado para provisionar recursos.
AZURE_SERVICE_PRINCIPAL_PASSWORD A senha da entidade de serviço do Azure.
AZURE_SUBSCRIPTION_ID Para identificar a assinatura na qual os recursos devem ser provisionados.
AZURE_TENANT_ID Para identificar o locatário no qual a assinatura reside.
M365_ACCOUNT_NAME A conta do Microsoft 365 para criar e publicar o Aplicativo teams.
M365_ACCOUNT_PASSWORD A senha da conta do Microsoft 365.
M365_TENANT_ID Para identificar o locatário no qual o Aplicativo teams é criado ou publicado. Esse valor é opcional, a menos que você tenha uma conta multilocatário e queira usar outro locatário. Leia mais sobre como encontrar sua ID de locatário do Microsoft 365.

Observação

  • Atualmente, um estilo de autenticação não interativo para o Microsoft 365 é usado em fluxos de trabalho de CI/CD, portanto, verifique se sua conta do Microsoft 365 tem privilégios suficientes em seu locatário e não tem autenticação multifator ou outros recursos de segurança avançados habilitados. Consulte a Configuração das Credenciais do Microsoft 365 para verificar se você desabilitou a Autenticação Multifator e os Padrões de Segurança para as credenciais usadas no fluxo de trabalho.
  • Atualmente, a entidade de serviço do Azure é usada em fluxos de trabalho de CI/CD e, para criar entidades de serviço do Azure para uso, consulte aqui.

Tipos de host

Os modelos variam em tipos de host (Azure ou SPFx) pelos quais modelos de fluxo de trabalho provisionar e cd são divididos em cópias. CI, Publicar modelos de fluxo de trabalho são independentes do tipo host. Se você estiver trabalhando em projetos hospedados no Azure, baixe esses modelos com o nome do arquivo de azure infixos. Se você estiver trabalhando em projetos hospedados no SPFx, baixe esses modelos com o nome do arquivo de spfx infixos.

Configurar fluxos de trabalho com o GitHub

Para configurar pipelines com o GitHub para CI/CD:

  • Criar fluxos de trabalho de CI/CD.
  • Personalizar fluxos de trabalho de CI/CD.

Criar fluxos de trabalho de CI/CD

  1. Baixe os arquivos de modelo correspondentes de Ferramentas e Modelos.
  2. Renomeie os arquivos de modelo baixados pelas suas necessidades.
  3. Coloque-os em .github/workflows, que é a pasta designada para GitHub Actions.
  4. Confirme e pressione esses arquivos de modelo em repositórios remotos.
  5. Adicione os segredos criptografados necessários para seus fluxos de trabalho.
  6. Dispare seus fluxos de trabalho. Verifique mais detalhes sobre como disparar um fluxo de trabalho no GitHub.

Personalizar fluxo de trabalho de CI

Para personalizar o fluxo de trabalho de CI, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o fluxo de trabalho de CI é disparado quando uma nova solicitação de pull é criada em relação ao dev branch.
  2. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  3. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar fluxo de trabalho de CD

Para personalizar o fluxo de trabalho de CD, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o fluxo de trabalho de CD é disparado quando novos commits são empurrados para o main branch.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.
  4. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  5. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar provisionamento e publicar fluxo de trabalho

Para personalizar o fluxo de trabalho Provisionar e Publicar, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o fluxo de trabalho é disparado manualmente.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.

Configurar pipelines com Azure DevOps

Para configurar pipelines com Azure DevOps para CI/CD:

  • Criar pipelines de CI/CD.
  • Personalize pipelines de CI/CD.

Criar pipelines de CI/CD

  1. Baixe os arquivos de modelo correspondentes de Ferramentas e Modelos.
  2. Renomeie os arquivos de modelo baixados pelas suas necessidades.
  3. Coloque-os em .azure/pipelines, que é a pasta convencional para Pipelines do Azure.
  4. Confirme e pressione esses arquivos de modelo em repositórios remotos.
  5. Crie pipelines correspondentes do Azure DevOps seguindo Criar seu primeiro Pipeline do Azure DevOps.
  6. Adicione as variáveis necessárias do Pipeline do Azure DevOps para seus pipelines.
  7. Dispare seus pipelines automaticamente, manualmente ou personalize (Verifique a trigger: seção ou pr: em arquivos yml para localizar os gatilhos). Para obter mais informações sobre gatilhos no Azure DevOps, consulte Gatilhos em pipelines do Azure.

Personalizar o pipeline de CI

Para personalizar o pipeline de CI, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o pipeline de CI é disparado quando uma nova solicitação de pull é criada em relação ao dev branch.
  2. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  3. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar pipeline de CD

Para personalizar o pipeline de CD, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o pipeline de CD é disparado quando novos commits são empurrados para o main branch.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.
  4. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  5. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar pipelines provision e publicar

Para personalizar o pipeline Provisionar e Publicar, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o fluxo de trabalho é disparado manualmente.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.

Configurar pipelines com Jenkins

Para configurar pipelines com Jenkins para CI/CD:

  • Criar pipelines de CI/CD.
  • Personalize pipelines de CI/CD.

Criar pipelines de CI/CD

  1. Baixe os arquivos de modelo correspondentes de Ferramentas e Modelos.
  2. Renomeie os arquivos de modelo baixados pelas suas necessidades.
  3. Coloque-os em .jenkins/pipelines, que pode ser uma pasta convencional para Jenkins Pipelines.

Personalizar o pipeline de CI

Para personalizar o pipeline de CI, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o pipeline de CI é disparado periodicamente.
  2. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  3. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar pipeline de CD

Para personalizar o pipeline de CD, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o pipeline de CD é disparado periodicamente.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.
  4. Adicione scripts para criar o projeto: por padrão, a Build the project etapa é comentada.
  5. Adicionar scripts para executar o teste de unidade: por padrão, a Run unit test etapa é comentada.

Personalizar pipelines provision e publicar

Para personalizar o pipeline Provisionar e Publicar, você pode fazer o seguinte:

  1. Alterar o gatilho: por padrão, o pipeline é disparado periodicamente.
  2. Alterar o valor da variável TEAMSFX_ENV_NAMEde ambiente : por padrão, o valor é dev.
  3. Alterar o valor da variável TEAMSFX_CLI_VERSIONde ambiente : por padrão, o valor é 2.*.

Configurar pipelines para outras plataformas

Você pode seguir os scripts de bash de exemplo predefinidos listados de Ferramentas e Modelos para criar e personalizar pipelines de CI/CD nas outras plataformas:

Os scripts são baseados em uma ferramenta de linha de comando do TeamsFx multiplataforma TeamsFx-CLI. Você pode instalá-lo com npm install -g @microsoft/teamsfx-cli e seguir a documentação para personalizar os scripts.

Observação

  • Para habilitar @microsoft/teamsfx-cli em execução no modo CI, ative CI_ENABLED por export CI_ENABLED=true. No modo CI, @microsoft/teamsfx-cli é amigável para CI/CD.
  • Para habilitar @microsoft/teamsfx-cli em execução no modo não interativo, defina uma configuração global com o comando: teamsfx config set -g interactive false. No modo não interativo, @microsoft/teamsfx-cli não solicita entradas.

Certifique-se de configurar as credenciais do Azure e do Microsoft 365 em suas variáveis de ambiente com segurança. Por exemplo, se você estiver usando o GitHub como repositório de código-fonte, consulte GitHub Secrets.

Como criar entidades de serviço do Azure para uso?

Para provisionar e implantar recursos direcionados ao Azure dentro de CI/CD, você deve criar uma entidade de serviço do Azure para uso.

Execute as seguintes etapas para criar entidades de serviço do Azure:

  1. Registre um aplicativo Microsoft Entra em um único locatário.
  2. Atribua uma função ao seu aplicativo Microsoft Entra para acessar sua assinatura do Azure. A função Contributor é recomendada.
  3. Crie um novo Microsoft Entra segredo do aplicativo.

Dica

Salve sua ID de locatário, ID do aplicativo (AZURE_SERVICE_PRINCIPAL_NAME) e o segredo (AZURE_SERVICE_PRINCIPAL_PASSWORD) para uso futuro.

Para obter mais informações, consulteDiretrizes de entidades de serviço do Azure. A seguir estão as três maneiras de criar entidades de serviço:

Publicar o aplicativo do Teams usando o Portal do Desenvolvedor do Teams

Se houver alterações relacionadas ao arquivo de manifesto do aplicativo Teams, você poderá atualizar o manifesto e publicar o aplicativo do Teams novamente. Para publicar o aplicativo teams manualmente, você pode usar o Portal do Desenvolvedor para Teams.

Execute as seguintes etapas para publicar o aplicativo :

  1. Entre no Portal do desenvolvedor para o Teams usando a conta correspondente.
  2. Importe seu pacote de aplicativo no zip, selecioneAplicativo de Importaçãode Aplicativo>>Substitua.
  3. Selecione o aplicativo de destino na lista de aplicativos.
  4. Para publicar seu aplicativo, selecione Publicar>em sua organização.

Confira também