Início Rápido: Criar um fluxo de trabalho do GitHub para publicar um aplicativo
Neste início rápido, você aprenderá a criar um fluxo de trabalho do GitHub para publicar seu aplicativo .NET. a partir do código-fonte. A publicação automática do aplicativo .NET do GitHub para um destino é chamada de CD (implantação contínua). Há muitos destinos possíveis para publicar um aplicativo. Neste início rápido, você publicará no Azure.
Pré-requisitos
- Uma conta do GitHub.
- Um repositório de código-fonte em .NET.
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um aplicativo Web ASP.NET Core.
- Um recurso do Serviço de Aplicativo do Azure.
Adicionar perfil de publicação
Para publicar o aplicativo no Azure, abra o portal do Azure para a instância do Serviço de Aplicativo do aplicativo. Na Visão geral do recurso, selecione Obter perfil de publicação e salve o arquivo *.PublishSetting localmente.
Aviso
O perfil de publicação contém informações confidenciais, como credenciais para acessar seu recurso do Serviço de Aplicativo do Azure. Essas informações devem ser sempre tratadas com muito cuidado.
No repositório do GitHub, navegue até Configurações e selecione Segredos no menu de navegação à esquerda. Selecione Novo segredo do repositório para adicionar um novo segredo.
Insira AZURE_PUBLISH_PROFILE
como o Nome e cole o conteúdo XML do perfil de publicação na área de texto Valor. Selecione Adicionar segredo. Para obter mais informações, confira Segredos criptografados.
Criar um arquivo do fluxo de trabalho
No repositório do GitHub, adicione um novo arquivo YAML ao diretório .github/workflows. Escolha um nome de arquivo significativo, algo que indique claramente o que o fluxo de trabalho se destina a fazer. Para obter mais informações, confira Arquivo do fluxo de trabalho.
Importante
O GitHub exige que os arquivos que compõem o fluxo de trabalho sejam colocados no diretório .github/workflows.
Os arquivos do fluxo de trabalho normalmente definem uma composição de uma ou mais ações do GitHub por meio do jobs.<job_id>/steps[*]
. Para obter mais informações, confira Sintaxe de fluxo de trabalho do GitHub Actions.
Crie um novo arquivo chamado publish-app.yml, e copie e cole o seguinte conteúdo YML nele:
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
Na composição anterior do fluxo de trabalho:
O
name: publish
define o nome, "publicar" aparecerá nas notificações de status do fluxo de trabalho.name: publish
O nó
on
significa os eventos que disparam o fluxo de trabalho:on: push: branches: [ production ]
- Disparado quando ocorre um
push
na ramificaçãoproduction
.
- Disparado quando ocorre um
O nó
env
define variáveis de ambiente nomeadas (env var).env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- A variável de ambiente
AZURE_WEBAPP_NAME
é atribuída ao valorDotNetWeb
. - A variável de ambiente
AZURE_WEBAPP_PACKAGE_PATH
é atribuída ao valor'.'
. - A variável de ambiente
DOTNET_VERSION
é atribuída ao valor'6.0.401'
. A variável de ambiente é referenciada posteriormente para especificar adotnet-version
da ação do GitHubactions/setup-dotnet@v3
.
- A variável de ambiente
O nó
jobs
compila as etapas para o fluxo de trabalho a ser realizado.jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
- Há um único trabalho, chamado
publish
, que será executado na versão mais recente do Ubuntu. - A ação do GitHub
actions/setup-dotnet@v3
é usada para configurar o SDK do .NET com a versão especificada da variável de ambienteDOTNET_VERSION
. - O comando
dotnet restore
é chamado. - O comando
dotnet build
é chamado. - O comando
dotnet publish
é chamado. - O comando
dotnet test
é chamado. - A ação do GitHub
azure/webapps-deploy@v2
implanta o aplicativo com os determinadospublish-profile
epackage
.- O
publish-profile
é atribuído do segredo do repositórioAZURE_PUBLISH_PROFILE
.
- O
- Há um único trabalho, chamado
Criar uma notificação de status de fluxo de trabalho
É comum que os repositórios do GitHub tenham um arquivo README.md na raiz do diretório do repositório. Da mesma forma, é bom relatar o status mais recente para vários fluxos de trabalho. Todos os fluxos de trabalho podem gerar uma notificação de status, que são visualmente atraentes no arquivo README.md. Para adicionar a notificação de status ao fluxo de trabalho:
No repositório do GitHub, selecione a opção de navegação Ações.
Todos os fluxos de trabalho do repositório são exibidos no lado esquerdo. Selecione o fluxo de trabalho desejado e o botão de reticências (...).
- O botão de reticências (...) expande as opções de menu para o fluxo de trabalho selecionado.
Selecione a opção no menu Criar notificação de status.
Selecione o botão Copiar Markdown da notificação de status.
Cole o Markdown no arquivo README.md, salve o arquivo, faça commit das alterações e envie por push.
Para obter mais informações, confira Como adicionar uma notificação de status do fluxo de trabalho.
Exemplo de Notificação de status do fluxo de trabalho de publicação
Em aprovação | Com falha | Sem status |
---|---|---|