Guia de início rápido: criar um fluxo de trabalho do GitHub para publicar um aplicativo
Neste início rápido, você aprenderá como criar um fluxo de trabalho do GitHub para publicar seu aplicativo .NET a partir do código-fonte. A publicação automática de seu aplicativo .NET do GitHub em um destino é chamada de implantação contínua (CD). Há muitos destinos possíveis para publicar um aplicativo, neste início rápido você publicará no Azure.
Pré-requisitos
- Uma conta GitHub.
- Um repositório de código-fonte .NET.
- Uma conta do Azure com uma subscrição 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 *. 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. Esta informação deve ser sempre tratada com muito cuidado.
No repositório GitHub, navegue até Configurações e selecione Segredos no menu de navegação esquerdo. Selecione Novo segredo do repositório para adicionar um novo segredo.
Digite AZURE_PUBLISH_PROFILE
como Nome e cole o conteúdo XML do perfil de publicação na área de texto Valor. Selecione Add secret (Adicionar segredo). Para obter mais informações, consulte Segredos criptografados.
Criar um arquivo de fluxo de trabalho
No repositório 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 pretende fazer. Para obter mais informações, consulte Arquivo de fluxo de trabalho.
Importante
O GitHub requer que os arquivos de composição do fluxo de trabalho sejam colocados no diretório .github/workflows .
Os arquivos de 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, consulte Sintaxe do fluxo de trabalho para ações do GitHub.
Crie um novo arquivo chamado publish-app.yml, 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 do fluxo de trabalho anterior:
O
name: publish
define o nome, "publicar" aparecerá nos selos de status do fluxo de trabalho.name: publish
O
on
nó significa os eventos que acionam o fluxo de trabalho:on: push: branches: [ production ]
- Acionado quando ocorre um
push
noproduction
ramo.
- Acionado quando ocorre um
O
env
nó 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
AZURE_WEBAPP_NAME
de ambiente recebe o valorDotNetWeb
. - A variável
AZURE_WEBAPP_PACKAGE_PATH
de ambiente recebe o valor'.'
. - A variável
DOTNET_VERSION
de ambiente recebe o valor'6.0.401'
. A variável de ambiente é posteriormente referenciada para especificar odotnet-version
actions/setup-dotnet@v3
da Ação do GitHub.
- A variável
O
jobs
nó cria as etapas a serem executadas pelo fluxo de trabalho.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
actions/setup-dotnet@v3
Ação GitHub é usada para configurar o SDK do .NET com a versão especificada daDOTNET_VERSION
variável de ambiente. - O
dotnet restore
comando é chamado. - O
dotnet build
comando é chamado. - O
dotnet publish
comando é chamado. - O
dotnet test
comando é chamado. - A
azure/webapps-deploy@v2
Ação do GitHub implanta o aplicativo com os dadospublish-profile
epackage
.- O
publish-profile
é atribuído a partir doAZURE_PUBLISH_PROFILE
segredo do repositório.
- O
- Há um único trabalho, chamado
Criar um selo de status do fluxo de trabalho
É uma nomenclatura comum para repositórios do GitHub ter 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 um selo de status, que são visualmente atraentes dentro do arquivo README.md . Para adicionar o selo de status do fluxo de trabalho:
No repositório 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 de menu Criar selo de status.
Selecione o botão Copiar selo de status Markdown .
Cole o Markdown no arquivo README.md , salve o arquivo, confirme e envie as alterações.
Para saber mais, consulte Adicionando um selo de status do fluxo de trabalho.
Exemplo de selo de status do fluxo de trabalho de publicação
Passagem | Com falhas | Sem estatuto |
---|---|---|