2 votes

Problème lié à GoCD Nuget

J'ai un projet et mon agent a installé nuget - Je ne sais pas ce que je fais de mal.

12:01:14.195 [go] Start to build DemoApp/20/second/1/secondJob on vivians-mbp-2.delta.rl.delta.com [/Users/vivianaranha/Library/Application Support/Go Agent]
12:01:14.195 [go] Current job status: passed.

12:01:14.195 [go] Start to execute task: <exec command="nuget restore packages.config -PackagesDirectory ..\..\packages" workingdir="EMApp\EMApp\EMApp.iOS" />.
12:01:14.199 Error happened while attempting to execute 'nuget restore packages.config -PackagesDirectory ..\..\packages'. 
Please make sure [nuget restore packages.config -PackagesDirectory ..\..\packages] can be executed on this agent.

12:01:14.199 [Debug Information] Environment variable PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/local/bin
12:01:14.206 [go] Current job status: failed.

1voto

jonmeyer Points 214

Avez-vous essayé de paramétrer les détails de la construction pour qu'ils soient plus détaillés ? De plus, lorsque je le fais, je fais en sorte que le build utilise le nuget.exe sauvegardé dans le contrôle de la source, et non sur l'agent de build.

0voto

Tomasz Sętkowski Points 1456

Vous commettez une erreur fréquente en matière de GDC s'attendre à exec tâche d'exécution d'un shell . D'après le journal de construction, je peux dire que votre configuration en xml est la suivante

<exec command="nuget restore packages.config -PackagesDirectory ..\..\packages" workingdir="EMApp\EMApp\EMApp.iOS">
</exec>

Cela signifie que GoCD essaierait d'exécuter un fichier dont le chemin d'accès est nuget restore packages.config -PackagesDirectory ..\..\packages qui n'existe pas.

GDC exec exige que vous sépariez explicitement l'exécutable du processus et tous les arguments. . Ainsi, l'exemple nuget ci-dessus devrait être configuré comme suit :

<exec command="nuget" workingdir="EMApp\EMApp\EMApp.iOS">
   <arg>restore</arg>
   <arg>packages.config</arg>
   <arg>-PackagesDirectory</arg>
   <arg>..\..\packages</arg>
</exec>

Plus de conseils sur la configuration des tâches :

  • Si nuget.exe ne figure pas dans le PATH, vous devrez configurer le chemin d'accès complet au fichier, par exemple command="C:\nuget\nuget.exe"
  • Voici un bel article de blog sur tâches d'exécution
  • Si vous n'aimez pas configurer le processus et les arguments séparément comme ceci, essayez de script plugin d'exécution qui lancera un interpréteur de commandes.

Édition 1

Sur mac, il faut lancer nuget avec mono. L'exécutable du processus est donc mono :

<exec command="mono" workingdir="EMApp\EMApp\EMApp.iOS">
   <arg>/path/to/nuget</arg>
   <arg>restore</arg>
   <arg>packages.config</arg>
   <arg>-PackagesDirectory</arg>
   <arg>..\..\packages</arg>
</exec>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X