2017-09-06 4 views
0

J'essaie d'utiliser TeamCity et Octopus Deploy pour un processus CI/CD d'une solution basée sur .NET Core 2.0. J'ai du mal à configurer correctement les étapes de construction dans teamcity, car aucun paquet n'est créé. J'utilise le .NET Core Plugin pour TeamCity avec les étapes correspondantes:Créer .nupkg avec TeamCity pour .NET Core 2.0

  • 'dotnet restaurer'
  • 'build dotnet'
  • 'pack dotnet'
  • 'dotnet publie'

I incluez également une étape 'OctopusDeploy Package', mais comme aucun paquet n'est produit, cette étape ne fait rien.

Le projet ne contient aucun fichier .json pour le projet (seulement quelques fichiers de configuration), mais des fichiers .csproj. Je suis nouveau dans tout ce processus CI/CD, mais je l'ai implémenté avec succès pour une solution .NET Framework 4.6.1 utilisant octopack.

Une idée sur la façon dont je peux résoudre ce problème? Tout commentaire est grandement apprécié.

Répondre

2

J'ai réussi à faire fonctionner l'empaquetage dans des fichiers de paquet * .zip avec octo.exe tool.

J'ai donc suivant TC construire des mesures pour construire la libération dans Octopus:

  1. Dotnet Restauration - de base .NET (de dotnet) - restaure les paquets NuGet
  2. Gulp (en option) - Gulp - exécute des tâches de Gulp
  3. test Dotnet (en option) - de base .NET (dotnet) - exécute des tests dans des projets de test
  4. Dotnet Construire - .NET de base (dotnet) - construit le projet
  5. Dotnet Publication - .NET de base (dotnet) - publie projet dans le répertoire de sortie spécifié
  6. * Octo Pack - ligne de commande - commande de octo.exe 'Exécute outil en ligne avec la commande suivante octo pack --id %PackId% --version %PackVersion% --basepath %PackDirectoryPath% --format zip --outfolder %ArtifactsDirectoryPath%
  7. Octo push - OctopusDeploy: push paquets - accule fichiers emballés dans un package intégré dans Octopus référentiel
  8. Octo Créer Release - OctopusDeploy: Créer libération - crée la libération dans l'esprit Octopus h les paquets désirés sont inclus

* Évidemment, vous devez installer l'outil octo.exe sur le serveur de l'agent TC et l'ajouter à la variable PATH pour pouvoir l'appeler à partir de la construction TC.

+0

Le fichier octo.exe est également disponible sous forme de paquet Nuget - https://www.nuget.org/packages/OctopusTools/ – benPearce

+0

Désolé, j'ai complètement oublié de poster des commentaires ... Merci de votre contribution, procédure fonctionne plutôt bien! Bien que j'utilise CMD ('dotnet build ProjectName.Models \ ProjectName.Models.csproj --framework netcoreapp2.0 --configuration Release' ....) Pour construire les fichiers du projet dans un ordre spécifique, comme la construction multi-proc de .sln a tendance à "verrouiller" les fichiers et casse la construction comme mentionné dans [link] (https://github.com/dotnet/sdk/issues/739).De plus, je ne spécifie pas de '--format' ou' --outfolder' dans octo pack. Marqué comme réponse! –