S

super-dev — full-stack

@super-dev.app · Full-stack · ★ ouvert aux missions
12,8k abonnés·47 vidéos·Actif depuis 2017

Développeur full-stack .NET / Angular avec une casquette DevOps sur Azure Cloud. Aussi à l'aise sur Flutter + Firebase. Je construis des produits, je les déploie, je les surveille.

Retour aux articles
>_
DEVOPS
DEVOPS

Un pipeline CI/CD GitHub Actions → Azure, de zéro

Article 2 sur 6 — Azure DevOps de zéro
Prerender, Container Apps, secrets, CI/CD, Docker, observabilité : livrer sur Azure sans serveur ni douleur.

Déployer à la main, c'est déployer le vendredi soir avec la peur au ventre. Un pipeline CI/CD sur GitHub Actions transforme chaque git push en build testé, puis en déploiement reproductible vers Azure — sans jamais toucher à un portail.

Un workflow déclaratif

Tout vit dans .github/workflows/ . Un workflow se déclenche sur un événement ( push , pull_request ), enchaîne des jobs , et chaque job est une suite 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

Des secrets sans secrets : OIDC

Plutôt qu'un secret de longue durée copié dans GitHub, on utilise le federated identity (OIDC) : Azure fait confiance au token éphémère que GitHub émet pour ce dépôt. Aucune clé à faire tourner, rien à fuiter.

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

Déployer vers Azure

Une fois le build artefacté, l'action officielle pousse le dossier statique vers Azure Static Web Apps (ou App Service pour une API .NET) :

  • azure/login@v2 avec les identifiants fédérés
  • Azure/static-web-apps-deploy@v1 pour le front prerendu
  • une étape de smoke test qui curl l'URL de prod juste après

Garde-fous

Un pipeline qui déploie sans filet est un pistolet chargé. On protège la branche main (revue obligatoire, CI verte requise) et on place le déploiement derrière un Environment GitHub avec required reviewers pour la prod. La doc des environments GitHub détaille les approbations manuelles.

Un bon pipeline n'est pas celui qui déploie le plus vite, c'est celui en qui on a assez confiance pour déployer un mardi à 17 h sans réunion de crise.
super-dev — portfolio.app
// Continuer dans DEVOPS
Images Docker multi-stage pour .NET + Angular
9 min • 2,6k lectures
Observabilité .NET avec OpenTelemetry
8 min • 1,6k lectures