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 ;)

Jérémy Jeanson

Comments

You have to be logged in to comment this post.