Skip to main content

Vue d'ensemble CI

Pipeline d'intégration continue Azure DevOps pour l'application NC.CAM.App.PortailClients, comprenant une API .NET et une application Angular.

Configuration

Déclencheurs

  • Trigger automatique : Désactivé (trigger: none par défaut)
  • Pull Request : Désactivé (pr: none par défaut)
  • Exécution : Manuelle uniquement

Paramètres

ParamètreDescriptionTypeValeur par défaut
enableSonarAnalysisActiver l'analyse SonarQubebooleantrue
enableTestsActiver l'exécution des tests unitairesbooleantrue
enableDockerBuildActiver la validation des images Dockerbooleantrue

Variable à surcharger pour chaque environnement via les variables du pipeline Azure DevOps

VariableValeurs possiblesDescription
DEPLOYMENT_ENVIRONMENTdev / staging / prodCette variable est utilisé pour le build de l'application Angular, savoir quel fichier de configuration utiliser.
  1. Aller dans votre pipeline → Edit → Variables
  2. Ajouter une variable nommée DEPLOYMENT_ENVIRONMENT avec la valeur souhaitée ('dev''staging', ou 'prod')
  3. Cette variable surchargera celle définie dans le YAML

Cette variable est géré au niveau du pipeline et non modifiable manuellement lors de l'exécution pour des raisons de sécurité.

Étapes du pipeline

1. Build_Applications

Objectif : Compilation des applications API et Angular

Jobs :

  • API : Build solution .NET avec analyse SonarQube et tests optionnels
  • Angular : Build projet Angular

2. Build_DbMigrator

Objectif : Compilation du migrateur de base de données

Dépendances : Aucune (parallèle à Build_Applications)

3. Validate_Docker_Images

Objectif : Validation de la création des images Docker

Dépendances :

  • Build_Applications
  • Build_DbMigrator

Jobs :

  • Validation image Docker API
  • Validation image Docker Angular

Variables d'environnement requises

Les variables suivantes doivent être configurées dans Azure DevOps :

  • OPENIDDICT_CERT_PASSWORD : Mot de passe certificat OpenIdDict
  • KESTREL_CERT_PASSWORD : Mot de passe certificat Kestrel

Modèles utilisés par le pipeline de CI

  • templates/build-api-job.yml
  • templates/build-angular-job.yml
  • templates/build-dbmigrator-job.yml
  • templates/build-api-docker-job.yml
  • templates/build-angular-docker-job.yml

Exécution

Le pipeline doit être lancé pour l'environnement que vous souhaitez déployer (ici la branche dev) :

image.png

Voir les paramètres au dessus.

Sécurité et certificats

Le pipeline utilise des variables secrètes Azure DevOps pour les certificats :

  • OPENIDDICT__CERTIFICATEPASSPHRASE : Mot de passe du certificat OpenIddict
  • KESTREL__CERTIFICATEPASSPHRASE : Mot de passe du certificat Kestrel

Ces variables doivent être configurées dans Azure DevOps avant l'exécution, notamment via les groupes de variables (un groupe par environnement).

Artefacts produits

  • api-artifacts
    • Application .NET publiée (bin/Release/net9.0/publish/)
    • Dockerfile pour la construction de l'image
  • dbmigrator-artifacts : binaires compilés du DB Migrator
  • angular-artefifacts :
    • Application Angular compilée
    • Dockerfile pour la construction de l'image

Prérequis

Service Connections

  • Sonarqube Cloud (si analyse SonarQube activée)

Configuration de l'agent

  • Ubuntu Latest avec Docker activé
  • Accès aux registres NuGet privés (via NuGet.Config)

Mise à jour des versions des frameworks

  • .NET SDK : Modifier DOTNET_VERSION
  • Node.js : Modifier NODE_VERSION
  • Images Docker de base : Modifier dans les Dockerfiles respectifs