CI/CD para proyectos C# (.NET) con GitHub Actions: guía paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: Por qué CI/CD es crítico para proyectos C# (.NET)



El desarrollo de software moderno es imposible sin automatización. Los procesos manuales de compilación, prueba e implementación no solo son lentos, sino que también son propensos a errores. Para los desarrolladores de C# que trabajan con el ecosistema .NET, la implementación de prácticas de CI/CD (Integración Continua / Despliegue Continuo) se ha convertido en un estándar de la industria.



GitHub Actions es una herramienta potente y flexible para automatizar flujos de trabajo, integrada directamente en GitHub. Permite crear pipelines (workflows) que reaccionan a eventos en el repositorio: pushes, creación de Pull Requests, lanzamientos y mucho más. En este artículo, analizaremos cómo configurar un pipeline CI/CD completo para un proyecto C# basado en .NET utilizando GitHub Actions.



Aprenderás cómo:

  • Configurar la compilación automática del proyecto.
  • Ejecutar pruebas unitarias (por ejemplo, xUnit o NUnit).
  • Publicar artefactos de compilación.
  • Desplegar la aplicación automáticamente (por ejemplo, en Azure, Docker Hub o un servidor).


1. Fundamentos de GitHub Actions: Workflow, Jobs y Steps



Antes de escribir código, comprendamos los conceptos básicos de GitHub Actions.



  • Workflow (Flujo de trabajo): Es un proceso automatizado que defines en un archivo YAML dentro de la carpeta .github/workflows. Un workflow se activa mediante un trigger (por ejemplo, un push a la rama main).
  • Job (Tarea): Un conjunto de pasos (steps) que se ejecutan en un mismo runner (máquina virtual). Los Jobs pueden ejecutarse de forma secuencial o en paralelo.
  • Step (Paso): Un comando o acción (action) individual. Puede ser la ejecución de un script, la instalación de dependencias o el uso de una action predefinida del marketplace.
  • Runner (Ejecutor): El servidor que ejecuta tu workflow. GitHub proporciona runners gratuitos (Ubuntu, Windows, macOS), o puedes ejecutar el tuyo propio.


Para proyectos .NET, usaremos actions predefinidas como actions/checkout (para clonar el repositorio) y actions/setup-dotnet (para instalar el SDK de .NET).



2. Configuración de un pipeline CI básico: Compilación y pruebas



Creemos nuestro primer workflow. Para ello, en la raíz del repositorio, crea la carpeta .github/workflows y dentro de ella el archivo dotnet-build.yml.



Este es el archivo YAML mínimo para compilar y probar un proyecto 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' # Especifica tu versión de .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


Analicemos el código:

  • name: El nombre del workflow que se mostrará en GitHub.
  • on: Define los triggers. En nuestro caso, push y pull request en las ramas main y develop.
  • jobs: Contiene una tarea build-and-test que se ejecuta en ubuntu-latest.
  • steps: Secuencia de acciones: clonar el código, instalar .NET 8.0, restaurar paquetes NuGet, compilar en configuración Release y ejecutar las pruebas.


Después de hacer push de este archivo al repositorio, GitHub Actions ejecutará el workflow automáticamente. Verás una marca de verificación verde o una cruz roja junto

Blogs

Book Recommendations