Configurar o GitHub Actions com a CLI do Azure nos Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure permitem que você use GitHub Actions para publicar revisões em seu aplicativo de contêiner. Conforme as confirmações enviadas por push a seu repositório do GitHub repository, um fluxo de trabalho da GitHub Actions é disparado e atualiza a imagem de contêiner no registro do contêiner. Depois que o contêiner é atualizado no registro, os Aplicativos de Contêiner do Azure criam uma nova revisão com base na imagem de contêiner atualizada.

Changes to a GitHub repo trigger an action to create a new revision.

O fluxo de trabalho do GitHub Actions é disparado por confirmações de uma ramificação específica de seu repositório. Você decide qual branch dispara a ação ao criar o fluxo de trabalho.

Este artigo mostra como gerar um fluxo de trabalho inicial do GitHub Actions com a CLI do Azure. Para criar um fluxo de trabalho que você pode personalizar totalmente, consulte Implantar nos Aplicativos de Contêiner do Azure com o GitHub Actions.

Autenticação

Ao adicionar ou remover uma integração do GitHub Actions, você pode autenticar passando um token de acesso GitHub pessoal ou usando a experiência de logon GitHub interativo. A experiência interativa abre um formulário no navegador da Web e oferece a oportunidade de fazer logon no GitHub. Assim que autenticado com êxito, um token é passado de volta para a CLI usada pelo GitHub para o restante da sessão atual.

  • Para passar um token de acesso pessoal, use o parâmetro --token e forneça um valor de token.
  • Se você optar por usar o logon interativo, use o parâmetro --login-with-github sem nenhum valor.

Observação

O token de acesso pessoal do GitHub precisa ter o escopo workflow selecionado.

Add

O comando containerapp github-action add cria uma integração do GitHub Actions com seu aplicativo de contêiner.

Observação

Antes de prosseguir com o exemplo abaixo, seu primeiro aplicativo de contêiner já precisa estar implantado.

Na primeira vez que você anexar o GitHub Actions ao seu aplicativo de contêiner, será necessário fornecer um contexto de entidade de serviço. O comando a seguir mostra como criar uma entidade de serviço.

az ad sp create-for-rbac \
  --name <SERVICE_PRINCIPAL_NAME> \
  --role "contributor" \
  --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>

Conforme você interage com este exemplo, substitua os espaço reservados entre <> pelos seus valores.

O valor retornado desse comando inclui appId, password e tenant da entidade de serviço. Você precisa passar esses valores para o comando az containerapp github-action add.

O exemplo a seguir mostra como adicionar uma integração ao usar um token de acesso pessoal.

az containerapp github-action add \
  --repo-url "https://github.com/<OWNER>/<REPOSITORY_NAME>" \
  --context-path "./dockerfile" \
  --branch <BRANCH_NAME> \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --registry-url <URL_TO_CONTAINER_REGISTRY> \
  --registry-username <REGISTRY_USER_NAME> \
  --registry-password <REGISTRY_PASSWORD> \
  --service-principal-client-id <appId> \
  --service-principal-client-secret <password> \
  --service-principal-tenant-id <tenant> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

Conforme você interage com este exemplo, substitua os espaço reservados entre <> pelos seus valores.

Mostrar

O comando containerapp github-action show retorna as definições de configuração do GitHub Actions para um aplicativo de contêiner.

Este exemplo mostra como adicionar uma integração ao usar o token de acesso pessoal.

az containerapp github-action show \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME>

Conforme você interage com este exemplo, substitua os espaço reservados entre <> pelos seus valores.

Esse comando retorna um conteúdo JSON com as definições de configuração de integração do GitHub Actions.

Delete

O comando containerapp github-action delete remove o GitHub Actions do aplicativo de contêiner.

az containerapp github-action delete \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

Conforme você interage com este exemplo, substitua os espaço reservados entre <> pelos seus valores.