2017-05-30 8 views
0

Ich versuche vsts-npm-auth zu verwenden, um die Authentifizierungs-Token für unsere VSTS-Paket-Repository zu bekommen. Auf meiner Entwicklung Maschine kann ich die BefehleVSTS-NPM-Auth nicht Authentifizierungs-Token auf VSTS bauen bekommt

npm install -g vsts-npm-auth vsts-npm-auth -config path-to-my\.npmrc

und es gelingt bei der Bereitstellung von mir mit einem Authentifizierungstoken ausgeführt. Ich versuche jetzt dies als Build-Schritt auf VSTS neu zu erstellen, so dass ich erstelle Sie den Powershell-Skript auth-vsts.ps1

$npmrcFile = "$PSScriptRoot\path-to-my\.npmrc"; 
npm install -g vsts-npm-auth; 
vsts-npm-auth -config $npmrcFile; 

und als Powershell Aufgabe hinzufügen. Die Task schlägt jedoch wie folgt fehl

2017-05-30T09:37:41.1082686Z ##[section]Starting: auth-vsts 
2017-05-30T09:37:41.1092712Z ============================================================================== 
2017-05-30T09:37:41.1092712Z Task   : PowerShell 
2017-05-30T09:37:41.1092712Z Description : Run a PowerShell script 
2017-05-30T09:37:41.1092712Z Version  : 1.2.3 
2017-05-30T09:37:41.1092712Z Author  : Microsoft Corporation 
2017-05-30T09:37:41.1092712Z Help   : [More Information](https://go.microsoft.com/fwlink/?LinkID=613736) 
2017-05-30T09:37:41.1092712Z ============================================================================== 
2017-05-30T09:37:41.1112679Z ##[command]. 'd:\a\1\s\auth-vsts.ps1' 
2017-05-30T09:37:47.3792461Z C:\NPM\Modules\vsts-npm-auth -> C:\NPM\Modules\node_modules\vsts-npm-auth\bin\vsts-npm-auth.exe 
2017-05-30T09:37:47.3792461Z C:\NPM\Modules 
2017-05-30T09:37:47.3802239Z `-- [email protected] 
2017-05-30T09:37:47.3802239Z 
2017-05-30T09:37:47.3802239Z 
2017-05-30T09:37:47.3802239Z vsts-npm-auth v0.25.0.0 
2017-05-30T09:37:47.3802239Z ----------------------- 
2017-05-30T09:37:47.3802239Z Creating npmrcFile. Path: D:\a\1\s\.npmrc 
2017-05-30T09:37:47.3802239Z Getting new credentials for source:https://our-domain/_packaging/SharedLib/npm/registry/, scope:vso.packaging_write vso.drop_write 
2017-05-30T09:37:49.8729702Z Caught exception: The prompt option is invalid because the process is not interactive. 
2017-05-30T09:37:49.8729702Z Parameter name: PromptType 
2017-05-30T09:37:49.8729702Z Caught exception: The prompt option is invalid because the process is not interactive. 
2017-05-30T09:37:49.8729702Z Parameter name: PromptType 
2017-05-30T09:37:49.8729702Z Couldn't get an authentication token for //our-domain/_packaging/SharedLib/npm/registry/:_authToken. 
2017-05-30T09:37:50.1769711Z ##[error]Process completed with exit code 1. 
2017-05-30T09:37:50.1809715Z ##[section]Finishing: auth-vsts 

Der Fehler gibt keinen Hinweis darauf, warum die Anmeldeinformationen nicht abgerufen werden können. Irgendwelche Ideen warum das sein könnte?

Antwort

1

Der Fehler hat an, warum er nicht die Anmeldeinformationen erhalten kann:

The prompt option is invalid because the process is not interactive. 

Dies könnte durch den Build-Agent läuft nicht im interaktiven Modus, der die Anmeldeinformationen Dialog machen nicht aufgefordert werden kann. Wenn Sie mit Hosted Build-Agenten wird der Build-Agent als Dienst ausgeführt, und es gibt keine Möglichkeit, in dem interaktiven Modus zu ändern.

Wenn Sie jedoch den Feed in einem Build-Schritt verwenden möchten, ist es nicht sinnvoll, während des Buildprozesses ein Anmeldedialogfeld aufzurufen, da der Buildschritt die erforderlichen Anmeldedaten nicht automatisch eingeben kann. Nicht sicher, ob es eine spezifische Anforderung in Ihrer Umgebung ist, aber der allgemeine Arbeitsablauf sollte die .npmrc Datei erzeugt in Ihrem lokalen Rechner auf den Source Control werden Hochladen so dass npm die Auth-Token in der Datei verwenden können, installieren/veröffentlichen Pakete VSTS Futter.

+0

Okay, das macht Sinn. Ich hatte das Hochladen/Kopieren die .npmrc Datei mit den Auth-Token als Teil der Build-Pipeline zurückgegriffen, um es arbeitet (gemäß den VSTS/MSFT Anweisungen für OS X und Linux) –