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: nonepar défaut) - Pull Request : Désactivé (
pr: nonepar défaut) - Exécution : Manuelle uniquement
Paramètres
| Paramètre | Description | Type | Valeur par défaut |
|---|---|---|---|
enableSonarAnalysis | Activer l'analyse SonarQube | boolean | true |
enableTests | Activer l'exécution des tests unitaires | boolean | true |
enableDockerBuild | Activer la validation des images Docker | boolean | true |
Variable à surcharger pour chaque environnement via les variables du pipeline Azure DevOps
| Variable | Valeurs possibles | Description |
|---|---|---|
DEPLOYMENT_ENVIRONMENT | dev / staging / prod | Cette variable est utilisé pour le build de l'application Angular, savoir quel fichier de configuration utiliser. |
- Aller dans votre pipeline → Edit → Variables
- Ajouter une variable nommée
DEPLOYMENT_ENVIRONMENTavec la valeur souhaitée ('dev','staging', ou'prod') - 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 OpenIdDictKESTREL_CERT_PASSWORD: Mot de passe certificat Kestrel
Modèles utilisés par le pipeline de CI
templates/build-api-job.ymltemplates/build-angular-job.ymltemplates/build-dbmigrator-job.ymltemplates/build-api-docker-job.ymltemplates/build-angular-docker-job.yml
Exécution
Le pipeline doit être lancé pour l'environnement que vous souhaitez déployer (ici la branche dev) :

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 OpenIddictKESTREL__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
- Application .NET publiée (
- 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