Implementar no Serviço de Aplicações através do GitHub Actions

Comece a usar as Ações do GitHub para automatizar seu fluxo de trabalho e implantar no Serviço de Aplicativo do Azure a partir do GitHub.

Pré-requisitos

Configurar a implantação do GitHub Actions ao criar o aplicativo

A implantação do GitHub Actions é integrada ao assistente de criação de aplicativos padrão. Você só precisa definir Implantação contínua como Habilitar na guia Implantação e configurar a organização, o repositório e a ramificação desejados.

A screenshot showing how to enable GitHub Actions deployment in the App Service create wizard.

Quando você habilita a implantação contínua, o assistente de criação de aplicativos seleciona automaticamente o método de autenticação com base na seleção de autenticação básica e configura seu aplicativo e seu repositório GitHub de acordo:

Seleção de autenticação básica Método de autenticação
Desativar Identidade atribuída pelo usuário (OpenID Connect)
Ativar Autenticação básica

Nota

Se você receber um erro ao criar seu aplicativo dizendo que sua conta do Azure não tem determinadas permissões, ele pode não ter as permissões necessárias para criar e configurar a identidade atribuída pelo usuário. Para obter uma alternativa, consulte Configurar a implantação de ações do GitHub a partir do Centro de Implantação.

Configurar a implantação do GitHub Actions a partir do Centro de Implantação

Para um aplicativo existente, você pode começar rapidamente com as Ações do GitHub usando o Centro de Implantação do Serviço de Aplicativo. Esse método turn-key gera automaticamente um arquivo de fluxo de trabalho GitHub Actions com base em sua pilha de aplicativos e o confirma em seu repositório GitHub.

O Centro de Implementação também permite configurar facilmente a autenticação OpenID Connect mais segura com a opção de identidade atribuída pelo utilizador.

Se sua conta do Azure tiver as permissões necessárias, você poderá optar por criar uma identidade atribuída pelo usuário. Caso contrário, você pode selecionar uma identidade gerenciada atribuída ao usuário existente no menu suspenso Identidade . Você pode trabalhar com o administrador do Azure para criar uma identidade gerenciada atribuída pelo usuário com a função de Colaborador do Site.

Para obter mais informações, consulte Implantação contínua no Serviço de Aplicativo do Azure.

Configurar um fluxo de trabalho de Ações do GitHub manualmente

Você também pode implantar um fluxo de trabalho sem usar o Centro de Implantação.

  1. Gerar credenciais de implantação
  2. Configurar o segredo do GitHub
  3. Adicione o arquivo de fluxo de trabalho ao repositório GitHub

1. Gerar credenciais de implantação

A maneira recomendada de autenticar com os Serviços de Aplicativo do Azure para Ações do GitHub é com uma identidade gerenciada definida pelo usuário, e a maneira mais fácil para isso é configurando a implantação das Ações do GitHub diretamente no portal e selecionando a identidade gerenciada atribuída pelo usuário.

Nota

A autenticação usando uma identidade gerenciada atribuída pelo usuário está atualmente em visualização.

Como alternativa, você pode autenticar com uma entidade de serviço, OpenID Connect ou um perfil de publicação.

Nota

O perfil de publicação requer autenticação básica para ser habilitado.

Um perfil de publicação é uma credencial no nível do aplicativo. Configure seu perfil de publicação como um segredo do GitHub.

  1. Aceda ao serviço da sua aplicação no portal do Azure.

  2. Na página Visão geral, selecione Obter perfil de publicação.

  3. Salve o arquivo baixado. Você usará o conteúdo do arquivo para criar um segredo do GitHub.

Nota

A partir de outubro de 2020, os aplicativos Web Linux precisam da configuração WEBSITE_WEBDEPLOY_USE_SCM do aplicativo definida para trueantes de baixar o perfil de publicação. Este requisito será suprimido no futuro.

2. Configure o segredo do GitHub

No GitHub, navegue pelo repositório. Selecione Configurações > Segredos de segurança > e variáveis > Ações > Novo segredo do repositório.

Para usar credenciais no nível do aplicativo, cole o conteúdo do arquivo de perfil de publicação baixado no campo de valor do segredo. Nomeie o segredo AZURE_WEBAPP_PUBLISH_PROFILE.

Ao configurar o arquivo de fluxo de trabalho do GitHub posteriormente, você usa a ação implantar o AZURE_WEBAPP_PUBLISH_PROFILE Azure Web App. Por exemplo:

- uses: azure/webapps-deploy@v2
  with:
    publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

3. Adicione o arquivo de fluxo de trabalho ao repositório do GitHub

Um fluxo de trabalho é definido por um arquivo YAML (.yml) no caminho no /.github/workflows/ repositório do GitHub. Esta definição contém as várias etapas e parâmetros que compõem o fluxo de trabalho.

No mínimo, o arquivo de fluxo de trabalho teria as seguintes etapas distintas:

  1. Autentique-se com o Serviço de Aplicativo usando o segredo do GitHub que você criou.
  2. Crie o aplicativo Web.
  3. Implante o aplicativo Web.

Para implantar seu código em um aplicativo do Serviço de Aplicativo, use a ação azure/webapps-deploy@v3 . A ação requer o nome do seu aplicativo Web e app-name , dependendo da sua pilha de idiomas, o caminho de um *.zip, *.war, *.jar ou pasta para implantar no package. Para obter uma lista completa de possíveis entradas para a ação, consulte a azure/webapps-deploy@v3definição de action.yml .

Os exemplos a seguir mostram a parte do fluxo de trabalho que cria o aplicativo Web, em diferentes idiomas suportados.

A publish-profile entrada deve fazer referência ao segredo do AZURE_WEBAPP_PUBLISH_PROFILE GitHub que você criou anteriormente.

name: .NET Core CI

on: [push]

env:
  AZURE_WEBAPP_NAME: my-app-name    # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0.x'           # set this to the dot net version to use

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Checkout the repo
      - uses: actions/checkout@main
      
      # Setup .NET Core SDK
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }} 
      
      # Run dotnet build and publish
      - name: dotnet build and publish
        run: |
          dotnet restore
          dotnet build --configuration Release
          dotnet publish -c Release --property:PublishDir='${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp' 
          
      # Deploy to Azure Web apps
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v3
        with: 
          app-name: ${{ env.AZURE_WEBAPP_NAME }} # Replace with your app name
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE  }} # Define secret variable in repository settings as per action documentation
          package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp'

Próximos passos

Confira as referências sobre Ações e fluxos de trabalho do GitHub do Azure: