Sélectionner une page

Pipeline Build : export, unpack, quality gates et tests

Le pipeline de build produit des artefacts vérifiés et reproductibles. Il part de la solution Dataverse et s’assure que le code et le modèle respectent les règles de qualité.

Étapes clés du build

Le build suit un enchaînement standardisé et scriptable.

  • Restore des dépendances .NET et outils pac.
  • Compile des plugins et exécution des tests unitaires.
  • Export de la solution depuis DEV en unmanaged.
  • Unpack de la solution pour versionner le XML.
  • Solution Checker pour détection de risques.
  • Publish des artefacts (zip + sources unpacked).

Exemple de YAML (extrait)

Ce snippet illustre les étapes critiques avec pac et dotnet.

trigger:
  branches: { include: [ dev ] }

pool: { vmImage: 'windows-latest' }

variables:
  SOL_NAME: 'Marlk_SalesCore'
  ENV_URL: '$(ENV_URL)'
  TENANT_ID: '$(TENANT_ID)'
  APP_ID: '$(APP_ID)'
  APP_SECRET: '$(APP_SECRET)'

steps:
- task: UseDotNet@2
  inputs: { version: '6.x' }

- script: dotnet build plugins/Marlk.SalesCore.Plugins/Marlk.SalesCore.Plugins.csproj --configuration Release
  displayName: Build plugins

- script: dotnet test plugins/Marlk.SalesCore.Plugins.Tests/Marlk.SalesCore.Plugins.Tests.csproj --logger trx
  displayName: Unit tests

- powershell: |
    pac auth create --url $(ENV_URL) --tenant $(TENANT_ID) --applicationId $(APP_ID) --clientSecret $(APP_SECRET) --name DevAuth
    pac solution export --name $(SOL_NAME) --path $(Build.SourcesDirectory)/artifacts/$(SOL_NAME).zip --managed false --processCanvasApps false
    pac solution unpack --zipfile $(Build.SourcesDirectory)/artifacts/$(SOL_NAME).zip --folder $(Build.SourcesDirectory)/solutions/$(SOL_NAME) --allowDelete true
  displayName: Export & Unpack

- powershell: |
    pac solution check --path $(Build.SourcesDirectory)/solutions/$(SOL_NAME) --geco true --json $(Build.SourcesDirectory)/artifacts/solution-check.json
  displayName: Solution Checker

- task: PublishBuildArtifacts@1
  inputs: { PathtoPublish: 'artifacts', ArtifactName: 'drop' }
  displayName: Publish artifacts

Quality gates

Les contrôles empêchent la dérive technique dès le build.

  • Tests unitaires obligatoires sur la logique C# (calculs, validations).
  • Solution Checker en échec bloquant si severities ≥ High.
  • Analyse statique StyleCop/FXCop et interdiction d’APIs obsolètes.

Rapports et traçabilité

Les sorties du build servent de preuve de qualité.

  • Publier TRX de tests, solution-check.json, package zip.
  • Associer le build aux Work Items liés.
  • Conserver l’artefact pour promotion vers TEST/PROD.