Comment automatiser l’installation de MSI avec Azure DevOps, et Release Manager ?
Automatisé le déploiement de MSI, n’a jamais été une tâche triviale. Aujourd’hui, je vous propose d’effectuer celle-ci avec Azure DevOps.
Pour l’exemple, j’utilise un pipeline de Release, et j’y ai ajouté une tâche powerShell :
Dans la propriété Inline
, il suffit de coller le contenu du script qui suit, et le tour est joué :
$msi = Get-ChildItem $(System.ArtifactsDirectory)\*.msi -Recurse
Write-Host "Msi trouvé : $msi"
$log = "D:\Applications\MyApp\installation.log"
if (Test-Path $log) {
Remove-Item $log -verbose
}
$arguments = @( "/i", $msi, "INSTALLFOLDER=""D:\Applications\MyApp""", "/quiet","/lv",$log)
Write-Host $arguments
Start-Process msiexec.exe -ArgumentList $arguments -Wait
Ce script va piloter msiexec en mode silencieux (c’est-à-dire sans interface), et attendre la fin du déploiement. Pour diagnostiquer les éventuels problèmes qui pourraient survenir lors du déploiement, un fichier de log est créé. Ce fichier est conservé jusqu’à la prochaine exécution.
Bien évidemment, il faudra adapter la variable $arguments
en fonction de vos besoins, et les différents chemins.
Ce script peut aussi être utilisé avec un pipeline de type multistage, et un job de déploiement.