DEV Community

Rodrigo Schemes
Rodrigo Schemes

Posted on • Edited on

1

CI/CD ASP.NET Core com GitHub Actions e Azure

Introdução

A implantação contínua (CI/CD) é uma prática essencial no desenvolvimento de software moderno. Ela permite automatizar o processo de construção, teste e implantação de aplicativos, garantindo atualizações rápidas e confiáveis. Neste artigo, vamos explorar como configurar um pipeline de CI/CD para um aplicativo ASP.NET Core, usando o GitHub Actions e implantando-o no Serviço de Aplicativo do Azure.

O que é o GitHub Actions?

O GitHub Actions é um serviço de automação oferecido pelo GitHub para ajudar os desenvolvedores a automatizar seus fluxos de trabalho de desenvolvimento de software. Ele permite que você crie, teste e implante seu código diretamente no GitHub. O melhor de tudo é que o GitHub Actions é gratuito para repositórios públicos e oferece uma generosa quantidade de minutos de execução para repositórios privados.

Pré-requisitos

Antes de começarmos, certifique-se de ter o seguinte:

  • Uma conta no GitHub.
  • Um repositório contendo um aplicativo ASP.NET Core.
  • Uma conta no Azure com acesso para criar um Serviço de Aplicativo.

Configurando o Pipeline

A seguir, veremos como configurar um pipeline de CI/CD para uma aplicação ASP.NET Core usando o GitHub Actions e implantá-la no Serviço de Aplicativo do Azure.

Etapa 1: Adicione um arquivo de configuração para o GitHub Actions

  1. Acesse o seu repositório no GitHub.
  2. No menu superior do seu repositório, clique na guia "Actions".
  3. Na página "Actions", você verá uma opção chamada "Set up a workflow yourself" no lado direito. Clique nela.
  4. Você será direcionado para um editor de código. Substitua todo o conteúdo por este código YAML de exemplo:
name: Publish

on:
  workflow_dispatch:
  push:
    branches:
    - main

env:
  AZURE_WEBAPP_NAME: exemplo-api

jobs:
  publish:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup .NET
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: '7.0.x'

      - name: Restore
        run: dotnet restore ./Exemplo/Exemplo.sln

      - name: Build
        run: dotnet build ./Exemplo/Exemplo.sln --configuration Release --no-restore

      - name: Publish
        run: dotnet publish ./Exemplo/Exemplo.sln --configuration Release --no-build --property PublishDir=${{env.DOTNET_ROOT}}/myapp

      - name: Deployment
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ env.AZURE_WEBAPP_NAME }}
          publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
          package: ${{env.DOTNET_ROOT}}/myapp
Enter fullscreen mode Exit fullscreen mode

Etapa 2: Configure o ambiente de implantação no Azure

No Portal do Azure, crie um Serviço de Aplicativo (Web App) onde você deseja implantar seu aplicativo ASP.NET Core. Como essa etapa não é o foco deste tutorial, deixarei alguns artigos de referência para ajudar nesse processo. Entretanto precisamos baixar o Perfil de Publicação para continuar a configuração no GitHub.

Para esta etapa, na página do Serviço de Aplicativo criado, no menu superior, clique em “Baixar Perfil de Publicação”. O perfil de publicação será baixado como um arquivo XML. Salve esse arquivo em um local seguro no seu computador.

Perfil de Publicação

Etapa 3: Configure o Perfil de Publicação no Github Secrets

Volte para o GitHub e acesse o seu repositório. Vá para as "Settings" (Configurações) do repositório e clique em "Secrets and variables" e depois em “Actions”. Adicione um novo segredo chamado AZURE_PUBLISH_PROFILE e, como valor, insira o conteúdo do arquivo XML que você baixou (o conteúdo do perfil de publicação).

IMPORTANTE: Nunca compartilhe ou exponha o Perfil de Publicação do Azure publicamente. Ele contém informações sensíveis de autenticação e autorização que podem comprometer a segurança do seu aplicativo e dos seus recursos no Azure. Mantenha-o em um local seguro e restrito, acessível apenas para aqueles que realmente precisam dele para fins de implantação.

Etapa 4: Realizando o Deploy

Agora, com seu pipeline de CI/CD configurado, você pode monitorar seu funcionamento e fazer ajustes conforme necessário. O GitHub Actions se encarregará de construir, testar e implantar seu aplicativo no Azure sempre que houver um push na branch main.

Na barra de navegação superior do repositório, você verá a guia "Actions". Clique nela para acessar a página de ações. Você verá uma lista de todos os workflows (fluxos de trabalho) configurados para esse repositório. Os workflows são organizados por nome e exibem o status atual de execução. Você verá informações como o nome do workflow, a data da execução mais recente e o status (por exemplo, sucesso, falha, em execução).

Workflows

Para obter mais informações sobre uma execução específica, clique no número da execução na lista. Isso o levará a uma página com detalhes completos sobre a execução, incluindo logs de cada etapa executada. Dentro dos detalhes da execução, você pode acessar os logs de cada etapa individual do workflow. Isso permite que você veja informações detalhadas sobre o que aconteceu em cada etapa da execução.

Detalhe do Workflow

No Azure, na página do Serviço de Aplicativo, é possível verificar o log de implantações. Para isso, acesse o menu "Centro de Implantação" e, em seguida, clique em "Logs".

Centro de Implantação

Conclusão

Configurar um pipeline de CI/CD para um aplicativo ASP.NET Core com o GitHub Actions é uma maneira eficaz de automatizar o processo de construção, teste e implantação. Isso permite que você entregue atualizações mais rapidamente e com mais confiança. Com as configurações e ajustes corretos, você pode criar um fluxo de trabalho robusto que melhora a qualidade e a eficiência do seu desenvolvimento de software.

Lembre-se de que as configurações e os ambientes de implantação podem variar de acordo com suas necessidades específicas, mas este guia serve como um ponto de partida para configurar seu próprio pipeline de CI/CD com o GitHub Actions.

Referências

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay