S

super-dev — full-stack

@super-dev.app · Full-stack · ★ disponible para proyectos
12,8k suscriptores·47 vídeos·Activo desde 2017

Desarrollador full-stack .NET / Angular con perfil DevOps en Azure Cloud. También cómodo con Flutter + Firebase. Construyo productos, los despliego, los monitorizo.

Volver a los artículos
>_
DEVOPS
DEVOPS

Un pipeline CI/CD de GitHub Actions → Azure, desde cero

Artículo 2 de 6 — Azure DevOps desde cero
Prerender, Container Apps, secrets, CI/CD, Docker, observabilidad: desplegar en Azure sin servidor ni dolor.

Desplegar manualmente es desplegar un viernes por la noche con el estómago encogido. Un pipeline CI/CD en GitHub Actions transforma cada git push en una build testeada y luego en un despliegue reproducible hacia Azure — sin tocar jamás un portal.

Un workflow declarativo

Todo vive en .github/workflows/ . Un workflow se dispara con un evento ( push , pull_request ), encadena jobs , y cada job es una serie de steps :

YAML
1name: deploy
2on:
3 push:
4 branches: [main]
5jobs:
6 build:
7 runs-on: ubuntu-latest
8 steps:
9 - uses: actions/checkout@v4
10 - uses: actions/setup-node@v4
11 with:
12 node-version: 22
13 - run: npm ci
14 - run: npm test
15 - run: npm run build:ssg

Secretos sin secretos: OIDC

En lugar de un secreto de larga duración copiado en GitHub, se utiliza la federated identity (OIDC): Azure confía en el token efímero que GitHub emite para ese repositorio. Ninguna clave que rotar, nada que filtrar.

YAML
1permissions:
2 id-token: write
3 contents: read

Desplegar hacia Azure

Una vez artefactada la build, la acción oficial empuja la carpeta estática hacia Azure Static Web Apps (o App Service para una API .NET):

  • azure/login@v2 con las credenciales federadas
  • Azure/static-web-apps-deploy@v1 para el front prerenderizado
  • un paso de smoke test que hace curl a la URL de prod justo después

Salvaguardas

Un pipeline que despliega sin red es una pistola cargada. Se protege la rama main (revisión obligatoria, CI verde requerida) y se sitúa el despliegue detrás de un Environment de GitHub con required reviewers para producción. La documentación de los environments de GitHub detalla las aprobaciones manuales.

Un buen pipeline no es el que despliega más rápido, sino aquel en el que se tiene suficiente confianza para desplegar un martes a las 17 h sin reunión de crisis.
super-dev — portfolio.app
// Continuar en DEVOPS
Imágenes Docker multi-stage para .NET + Angular
9 min • 2,6k lecturas
Observabilidad .NET con OpenTelemetry
8 min • 1,6k lecturas