32

Sto provando a configurare TeamCity per creare il mio progetto, ma il mio script psake fallisce, con la ragione di essere limitato alla sua incapacità di trovare l'eseguibile git, che dovrebbe essere sul percorso. Quando avvio un PowerShell ed eseguo la cosa da solo, tutto funziona correttamente.Da dove un agente di generazione TeamCity ottiene il proprio ambiente di percorso?

Il contenuto della variabile di ambiente Path (come mostrato nella lista Variabili di sistema nella finestra di variabili di ambiente Windows, nonché del Registro di sistema HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path) è

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd 

ancora TeamCity dice il suo env.Path è solo

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Windows\System32\WindowsPowerShell\v1.0 

Ho riavviato il computer (più volte) che non aiuta affatto.

Perché la variabile PATH dell'agente di generazione di TeamCity è diversa da quella predefinita del sistema e come posso risolverlo?

+0

Qualsiasi soluzione ragionevole ancora? – tishma

+1

Odio supporre, ma se lo stai eseguendo come servizio Windows, l'ambiente verrebbe dall'utente che esegue il servizio. – tishma

+0

No, nessuna soluzione. Ho abbandonato TeamCity e ora uso CruiseControl.net. – erikkallen

risposta

4

La soluzione è in Configurazione build/6 Parametri di compilazione in cui è possibile eseguire l'override delle variabili env. [ANYTHING].

P.S. Sry per sentirlo. Sono ancora determinato ad avere successo con TeamCity.

4

La mia soluzione, suggerita dal commento di Tishma, è stato quello di modificare la variabile Path ambiente per la utente e riavviare il Team City Build Agent Service

Edit: This bug è stato fissato a partire dal TeamCity 7.1

15

ho incontrato questo stesso problema e aveva solo bisogno di riavviare il servizio Agente Team City Build per raccogliere le modifiche alla variabile PATH.

+2

Arghhhhhhhhhh! http://stackoverflow.com/q/23204893/106261 – NimChimpsky

+0

Lo stesso qui. Utilizzando 8.0.5 e ha dovuto riavviare gli agenti per ottenere le modifiche raccolte. –

12

È possibile espandere il percorso di un agente di generazione aggiungendo un parametro di build denominato "env.PATH" con il seguente valore su Mac OS e Linux.

%env.PATH%:/my/path 

Su Windows utilizzare ";" invece di ":" come delimitatore di percorso.

È anche possibile aggiungere quanto segue a conf/buildAgent.properties nella directory di installazione dell'agente di creazione.

env.PATH=%env.PATH%:/my/path 

(C'è un commento in fondo del file che mostra come impostare l'ambiente Vars.)

+1

Attenzione: penso che 'env.PATH =% env.PATH%:/mio/percorso' risolverà il letterale' "% env.PATH%:/mio/percorso" 'a meno che'% env.PATH% 'non sia stato già stato precedentemente definito in TC. Ma '% env.PATH %' non è la stessa cosa che provare ad aggiungere al tuo percorso esistente usando% PATH%; .... Per farlo potrebbe essere necessario utilizzare %% PATH %% in modo che le percentuali siano sfuggite ... – Schneider

6

Alcune risposte precedenti sono corrette, ma mancano i dettagli (e mi portano un po 'di tempo per davvero capirli) - Dove l'agente predefinito prende le sue variabili di ambiente non è chiaro per me: ecco un modo per correggerle chiaramente nella configurazione dell'agente.

Modificare il file TeamCity/buildAgent/conf/buildAgent.properties con env.PATH=/usr/whatever farà il trucco. La documentazione ha a small hint su quello.

Una volta che hai modificato quel file, puoi controllare nell'interfaccia utente, in Agents > Default Agent > Agent Parameters > Environment Variables, che sono stati aggiornati (attenti, pensate, quelle variabili vengono aggiornate solo nell'interfaccia utente quando l'agente è connesso, se è disconnesso , l'interfaccia utente visualizza i valori precedenti).

Problemi correlati