web-dev-qa-db-fra.com

Comment publier des artefacts séparément pour chaque projet dans la solution à partir du pipeline CI VSTS?

Dans ma solution, j'ai deux projets (un MVC Asp.net et un service Windows). Je veux créer un pipeline CI/CD pour déployer l'application Web et le service Windows sur différentes machines virtuelles. Mais pour y parvenir, mon pipeline CI devrait être en mesure de publier des artefacts séparément pour les deux projets, puis je peux alimenter ces artefacts dans un pipeline CD pour le déploiement. Comment les artefacts de tous les projets peuvent-ils être publiés séparément dans un pipeline CI?

PS: Si je crée deux solutions chacune avec un seul projet et que je crée un pipeline CI/CD séparément, tout fonctionne bien. Mais je veux y parvenir avec une solution ayant plusieurs projets comme mentionné ci-dessus.

9
DevX

Vous pouvez utiliser plusieurs tâches de publication pour créer plusieurs artefacts dans une même définition de build.

Par exemple, disons que vous avez ci-dessous, comme vos artefacts actuels pour un seul projet, comprenant _PublishedWebsites\MVS5WebApp (site Web déployable XCopy) et _PublishedWebsites\MVS5WebApp_Package (package de déploiement Web).

Current Artifact

Si vous souhaitez séparer ces deux, en deux artefacts, vous pouvez utiliser deux tâches de publication d'artefact comme indiqué ci-dessous, chacune spécifiant le chemin exact à publier (ce chemin ne prend pas en charge les caractères génériques, il vous suffit de spécifier le dossier que vous devez publier) Publish website XCopy deploy content

Publish Web Deploy Package

Cela vous donnera la sortie comme indiqué ci-dessous. Two Artifacts

Dans cet exemple, j'ai seulement utilisé la tâche Publier les artefacts et créé deux artefacts à l'aide d'un seul projet de site Web. Vous pouvez faire de même pour votre scénario à deux projets. Si vous souhaitez utiliser un caractère générique pour filtrer plus de fichiers avant la publication, vous pouvez utiliser la tâche "Copier le fichier" plusieurs fois si nécessaire.

8
ChamindaC

Si vous utilisez '. Net core' dans le pipeline de génération, alors décochez la case 'Publier les projets Web' juste après la zone de texte de la commande.

Ensuite, il crée automatiquement des artefacts de publication séparés pour chaque projet dans la solution avec le même nom que chacun des fichiers de projet.

2
Ram

Vous avez plusieurs façons d'y parvenir.
Vous pouvez créer plusieurs définitions de build ciblant le projet et non la solution à l'étape de build avec les arguments appropriés.
Ou vous pouvez avoir une définition de build avec plusieurs étapes de build.
Après cela, du côté des versions, vous pouvez utiliser une définition de version avec plusieurs étapes ou plusieurs définitions de version.

0
baywet