Publier plusieurs applications web avec Azure DevOps et Azure Pipeline
Voici une situation qui peut très vite devenir irritante : vous avez développé plusieurs applications web dans un même repository Azure DevOps (dans mon cas : Blazor, et WebAPI). Vous souhaitez les publier via Azure Pipeline. Vous utilisez donc le template .net core par défaut et y ajoutez une tâche DotNetCoreCLI@2
avec la commande publish
. Cependant au moment de consulter les artefacts produits, vous vous rendez compte qu’une seule application est présente.
Même en ajoutant une seconde tache DotNetCoreCLI@2
avec la commande publish
et en fixant le nom du projet à publier, rien n’y fait.
La solution
Pas de panique, il y a une solution simple : désactiver l’option publishWebProjects et définir la liste des projets à publier.
Exemple :
- task: DotNetCoreCLI@2
displayName: 'Publication des application web'
inputs:
command: publish
projects: |
**/App1.csproj
**/App2.csproj
publishWebProjects: false
zipAfterPublish: True
arguments: '--output $(build.ArtifactStagingDirectory)'
Si on se rapporte à la documentation, celle-ci laisse supposer que la tâche est incapable de trouver les projets web. La propriété publishWebProjects
semble donc assez mal nommée (étrange pour une tâche de Microsoft). Celle-ci mériterait un nom plus explicite (exemple : DetectWebProjects
, SearchWebProjects
,...).
Moralité
Il suffisait donc de prendre le temps de la lire la documentation pour trouver une solution ;)