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.
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.