CI/CD para projetos C# (.NET) com GitHub Actions: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que CI/CD é crítico para projetos C# (.NET)



O desenvolvimento moderno de software é impossível sem automação. Processos manuais de build, teste e deploy não são apenas lentos, mas também propensos a erros. Para desenvolvedores C# que trabalham com o ecossistema .NET, a adoção de práticas de CI/CD (Continuous Integration / Continuous Deployment) tornou-se o padrão da indústria.



GitHub Actions é uma ferramenta poderosa e flexível para automatizar fluxos de trabalho, integrada diretamente ao GitHub. Ela permite criar pipelines (workflows) que reagem a eventos no repositório: pushes, criação de Pull Requests, releases e muito mais. Neste artigo, vamos detalhar como configurar um pipeline CI/CD completo para um projeto C# baseado em .NET usando GitHub Actions.



Você aprenderá como:

  • Configurar o build automático do projeto.
  • Executar testes de unidade (por exemplo, xUnit ou NUnit).
  • Publicar artefatos de build.
  • Fazer deploy automático da aplicação (por exemplo, no Azure, Docker Hub ou servidor).


1. Fundamentos do GitHub Actions: Workflow, Jobs e Steps



Antes de escrever código, vamos entender os conceitos básicos do GitHub Actions.



  • Workflow: É um processo automatizado que você define em um arquivo YAML na pasta .github/workflows. O workflow é acionado por um gatilho (ex: push na branch main).
  • Job: Um conjunto de steps (etapas) que são executados em um único runner (máquina virtual). Jobs podem ser executados sequencialmente ou em paralelo.
  • Step: Um comando ou ação individual. Pode ser a execução de um script, instalação de dependências ou o uso de uma action pronta do marketplace.
  • Runner: O servidor que executa seu workflow. O GitHub fornece runners gratuitos (Ubuntu, Windows, macOS), ou você pode executar o seu próprio.


Para projetos .NET, usaremos actions prontas como actions/checkout (para clonar o repositório) e actions/setup-dotnet (para instalar o .NET SDK).



2. Configuração de um pipeline CI básico: Build e Teste



Vamos criar nosso primeiro workflow. Para isso, na raiz do repositório, crie a pasta .github/workflows e dentro dela o arquivo dotnet-build.yml.



Aqui está o arquivo YAML mínimo para build e teste de um projeto C#:



name: .NET Build and Test

on: push: branches: [ main, develop ] pull_request: branches: [ main ]

jobs: build-and-test: runs-on: ubuntu-latest

steps: - name: Checkout repository uses: actions/checkout@v4

- name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' # Especifique sua versão do .NET

- name: Restore dependencies run: dotnet restore

- name: Build run: dotnet build --no-restore --configuration Release

- name: Run tests run: dotnet test --no-build --configuration Release --verbosity normal


Analisando o código:

  • name: Nome do workflow que será exibido no GitHub.
  • on: Define os gatilhos. No nosso caso, push e pull request nas branches main e develop.
  • jobs: Contém uma tarefa build-and-test que é executada no ubuntu-latest.
  • steps: Sequência de ações: clonagem do código, instalação do .NET 8.0, restauração dos pacotes NuGet, build na configuração Release e execução dos testes.


Após o push deste arquivo para o repositório, o GitHub Actions executará o workflow automaticamente. Você verá uma marca de seleção verde ou um 'X' vermelho ao lado

Blogs

Book Recommendations