Configurar o GitHub Actions com a CLI do Azure no Azure Container Apps
Os Aplicativos de Contêiner do Azure permitem que você use as Ações do GitHub para publicar revisões em seu aplicativo de contêiner. À medida que as confirmações são enviadas por push para o repositório do GitHub, um fluxo de trabalho de Ações do GitHub é acionado que atualiza a imagem do 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 de Ações do GitHub é acionado por confirmações em uma ramificação específica em seu repositório. Ao criar o fluxo de trabalho, você decide qual ramificação aciona a ação.
Este artigo mostra como gerar um fluxo de trabalho inicial de Ações do GitHub com a CLI do Azure. Para criar seu próprio fluxo de trabalho que você pode personalizar totalmente, consulte Implantar em aplicativos de contêiner do Azure com ações do GitHub.
Autenticação
Ao adicionar ou remover uma integração de Ações do GitHub, você pode autenticar passando um token de acesso pessoal do GitHub ou usando a experiência de login interativa do GitHub. A experiência interativa abre um formulário no seu navegador e dá-lhe a oportunidade de iniciar sessão no GitHub. Uma vez autenticado com êxito, um token é passado de volta para a CLI usada pelo GitHub para o resto da sessão atual.
- Para passar um token de acesso pessoal, use o parâmetro e forneça um valor de
--token
token. - Se você optar por usar o login interativo, use o
--login-with-github
parâmetro sem valor.
Nota
Seu token de acesso pessoal do GitHub precisa ter o workflow
escopo selecionado.
Adicionar
O containerapp github-action add
comando cria uma integração do GitHub Actions com seu aplicativo de contêiner.
Nota
Antes de prosseguir com o exemplo abaixo, você deve ter seu primeiro aplicativo de contêiner já implantado.
Na primeira vez que você anexar Ações do GitHub ao seu aplicativo de contêiner, precisará fornecer um contexto principal 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>
À medida que você interage com este exemplo, substitua os espaços reservados cercados por <>
seus valores.
Os valores de retorno desse comando incluem , appId
password
e tenant
. Você precisa passar esses valores para o az containerapp github-action add
comando.
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>
À medida que você interage com este exemplo, substitua os espaços reservados cercados por <>
seus valores.
Mostrar
O containerapp github-action show
comando retorna as definições de configuração de Ações do GitHub 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>
À medida que você interage com este exemplo, substitua os espaços reservados cercados por <>
seus valores.
Este comando retorna uma carga JSON com as definições de configuração de integração do GitHub Actions.
Eliminar
O containerapp github-action delete
comando remove as Ações do GitHub 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>
À medida que você interage com este exemplo, substitua os espaços reservados cercados por <>
seus valores.