web-dev-qa-db-fra.com

Comment configurer une génération TeamCity pour un projet ASP.NET 5

J'essaie de configurer un serveur CI pour un site Web que je suis en train de développer, mais je ne trouve aucune information sur la procédure à suivre avec le nouvel ASP.NET 5.

14
edua_glz

Nous (l'équipe ASP.NET) utilisons TeamCity en tant que serveur de génération. Chaque dépôt a un fichier build.cmd, similaire à celui-ci . TeamCity appelle simplement ce fichier.

Pour les versions Mac/Linux, il existe un fichier build.sh.

9
Victor Hurdugaci

Je vous ai mon frère. Cela m'a pris quelques jours pour comprendre. Cette configuration est sur TeamCity v10 pour un projet ASP.NET Core 1.0 RC2/preview2. En prime, j'inclue l'étape où cela pousse à Octopus Deploy. Vous devrez installer le plugin dotnet teamcity et le dernier plugin Octopus Deploy avec la fonctionnalité Push. Voici un aperçu des étapes de construction:

 Build Steps Overview

Tout d'abord, n'essayez pas d'utiliser dotnet restore pour restaurer les packages. Cela ne fonctionnera pas si vous avez des paquets de nuget internes qui ne sont pas compilés en tant que .Net Core. Cela a pris une éternité pour comprendre. J'ignorerais d'essayer d'utiliser dotnet restore jusqu'à ce que tout le monde soit converti en .Net Core ou Microsoft corrige dotnet.exe pour être plus flexible.

 Build Step 1/3

Certaines des choses que j'ai lues ont dit utiliser la dernière version bêta de NuGet, 3.5. Lorsque j'essayais cela, j'obtenais l'erreur suivante.

[14:30:09] [restore] Démarrage de NuGet.exe 3.5.0.1737 à partir de D:\buildAgent\tools\NuGet.CommandLine.3.5.0-rc1\tools\NuGet.exe

[14:30:10] [restore] Impossible de charger le type 'NuGet.CommandAttribute' dans Assembly 'NuGet, Version = 3.5.0.1737, Culture = neutre, PublicKeyToken = 31bf3856ad364e35'.

Je ne sais pas ce que cela signifie et je m'en fiche. Utilisez 3.4.4 pour l'instant. Remplissez le reste comme il convient.

 Build Step 2/3

L'étape dotnet publish est assez simple. Assurez-vous de fournir le répertoire de sortie car vous souhaitez l’utiliser à la dernière étape. Assurez-vous également de spécifier un chemin absolu à l'aide de la variable %teamcity.build.workingDir% à cause de this bug . Sinon, votre fichier web.config ne pourra pas être trouvé et la publication de tout le site ne sera pas terminée. Vous allez manquer des choses comme web.config et wwwroot!  Build Step 3/3

Enfin, nous poussons à Octopus. C'était très difficile pour moi. Notez la partie qui dit %teamcity.build.workingDir%/published-app/**/* => OrderReviewBoard.1.0.0.Zip

SI TOUTE PARTIE DE CES IS INVALID, TON ÉTAPE NE PARA PAS, SANS SE EXPLIQUER !!! Par invalide, je veux dire peut-être que vous insérez une variable d’environnement teamcity (comme le %build.number% qu’ils montrent dans tous les exemples) dans ce nom de fichier Zip qui ne se résout pas correctement. Ou vous spécifiez un chemin inexistant. Ou un nombre quelconque de choses, vous verrez une erreur disant "[Octopus Deploy] S'il vous plaît, spécifiez un paquet à pousser". Cela signifie qu’un n’a jamais été généré car cette instruction a échoué. Je réalise que vous voulez avoir un numéro de build auto-incrémenté ici. Je vous laisse le soin de déterminer comment faire cela.

Ne vous laissez pas déconcerter par ce qui se passe ici. Octopus essaie de l'expliquer sur leur site , mais c'est caché ici. Il y a octo pack et octo Push. La nouvelle version de octo pack est à l'abri des regards, en fonction de la déclaration que vous avez insérée dans cette zone "Chemins de package". Ne vous laissez pas distraire en essayant de créer un paquet nuspec ou en utilisant dotnet pack. Ce sont des impasses pour nos objectifs. Créez un fichier .Zip et passez à autre chose. Enfin, remarquez les arguments de ligne de commande supplémentaires que j'ai ajoutés. Ceux-ci vous aident un tout petit peu. Ils ne sont pas nécessaires. Bonne chance.

10
redwards510

Pour le moment, vous pouvez essayer d'utiliser le plugin TeamCity pour les projets .NET Core: https://github.com/JetBrains/teamcity-dotnet-plugin

4
dtretyakov
1
detay

Comme de nombreux changements ont été apportés au monde ASP.NET Core et que l’on m’en a demandé plusieurs fois, j’ai écrit un guide pas à pas sur la configuration d’un environnement CI/CD à l’aide de TeamCity pour .NET Coeur . Je pense que cela est particulièrement utile pour les débutants.

1
Claudio Bernasconi