web-dev-qa-db-fra.com

Azure DevOps: 1 solution plusieurs projets CI / CD

Je viens de commencer à configurer Azure DevOps avec CI/CD. Ce n'est peut-être pas possible mais j'espère trouver des réponses.

J'ai une solution avec 6 projets:

  • Projet Web Api (fait référence aux projets d'infrastructure, de référentiels et de modèles)
  • Projet de site Web (appelle l'API Web pour les données et les références des projets d'infrastructure, de référentiels et de modèles)
  • Projet Node.js (appelle uniquement Web Api pour les données)
  • Projet d'infrastructure (partagé par Web Api et Website)
  • Projet de référentiels (partagé par Web Api et Website)
  • Projet Models (partagé par Web Api et Website)

Avant de commencer à rechercher comment publier les projets Web Api, Website et Node.js sur leur propre Azure App Service dans les définitions CI/CD:

Est-il possible de le configurer pour que seuls certains projets soient déployés? Par exemple: le projet Node.js est publié uniquement ou seuls le Web Api et le site Web sont publiés, mais pas le Node.js.

Ou dois-je conserver les choses dans différentes solutions?

Si je les conserve dans des solutions distinctes, comment cela affecte-t-il les projets partagés (Infrastructure, Repo et Modèles) en référence au contrôle de source (Git)? Si j'ajoute du code aux modèles et au référentiel dans la solution Web Api, dois-je valider ces modifications et non le référentiel Web Api Git? Comment cela affecte-t-il les autres projets qui référencent les mêmes modèles et projets Repo? Est-ce là que les sous-modules Git entrent en jeu?

Mise à jour 1 (2019/3/8)

On dirait que je pourrais être en mesure de faire fonctionner cela dans 1 solution en utilisant Filtres de chemin ( https://docs.Microsoft.com/en -us/Azure/devops/pipelines/build/triggers? view = Azure-devops ). Toujours intéressé par toute autre contribution.

10
RoLYroLLs

En espérant que cela aide les autres:

J'ai résolu cela en utilisant Filtres de chemin sur la définition Build et cela fonctionne parfaitement. J'ai créé 1 définition de build par projet qui doit vivre ou être hébergé quelque part (dans mon exemple, j'ai 3 définitions de Build: Web Api, Website, Node.js).

Avec le chemin d'accès approprié au projet dans le filtre de chemin , seul le Builds approprié tourne et tous les projets non modifiés ne déclenchent pas de génération . Chaque build possède son propre release qui déploie ensuite l'application spécifiée sur sa propre destination.

9
RoLYroLLs

Regardez si je comprends bien votre question, vous devez déployer des composants spécifiques. Oui, vous pouvez le faire dans Azure DevOps. Dans Azure DevOps, vous avez une définition de build et un pipeline de versions. En build vous allez construire les projets et publier seulement 2 composants dont vous avez parlé et en release vous les déploierez j'espère avoir répondu à votre question

1
Mohamed Amr