La installation de npm de Jenkins falla al instalar el module alojado en bitbucket

Estoy usando Jenkins para gestionar la continuous integration. Uno de mis trabajos contiene las siguientes tareas:

  • Clonar un repository desde BitBucket a través del plugin Git, usando la cnetworkingencial "bitbucket access" (key privada con contraseña) => ¡funciona bien!
  • Ejecución del command por lotes en el repository: 'npm install' => falla !

En el file package.json, hay algunos modules nodeJS comunes como colors, fs.extra, etc. Esos están instalados correctamente si son los únicos.

Pero también hay un module alojado en BitBucket como privado:

"dependencies": { "module": "git+ssh://git@bitbucket.org/<team>/module.git" } 

Ese module no se puede instalar durante el command 'npm install' (consulte el logging de Jenkins a continuación).

El trabajo se ejecuta en un esclavo de Windows 7. Si trato de hacer 'npm install' en una session "mySession" en el esclavo, me pide la frase de contraseña correspondiente a la key privada ubicada en C: \ Users \ mySession \ .ssh \ id_rsa (que también tiene acceso a BitBucket, pero que es específico de la session "mySession", y tan diferente de la cnetworkingencial de "acceso a bitbucket"). Entonces 'npm install' finaliza normalmente instalando el module.

Traté de usar el complemento SSH Agent, con la cnetworkingencial "acceso bitbucket": se inicia correctamente, pero parece que no se utilizará después, ya que se deniega el permiso.

¿Tiene alguna idea de cómo resolver este problema y hacer que la installation de 'npm' funcione correctamente?

¡Gracias por tus serveres!

Registro de Jenkins:

 Construction à distance sur MySlave in workspace C:\Jenkins\workspace [ssh-agent] Looking for ssh-agent implementation... [ssh-agent] Java/tomcat-native ssh-agent [ssh-agent] Registenetworking BouncyCastle on the remote agent [ssh-agent] Started. [ssh-agent] Using cnetworkingentials bitbucket access ... npm WARN package.json deployment@1.0.0 No description npm WARN package.json deployment@1.0.0 No repository field. npm WARN package.json deployment@1.0.0 No README data npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url npm WARN addRemoteGit npm WARN addRemoteGit at ChildProcess.exithandler (child_process.js:203:12) npm WARN addRemoteGit at emitTwo (events.js:87:13) npm WARN addRemoteGit at ChildProcess.emit (events.js:172:7) npm WARN addRemoteGit at maybeClose (internal/child_process.js:818:16) npm WARN addRemoteGit at Socket.<anonymous> (internal/child_process.js:319:11) npm WARN addRemoteGit at emitOne (events.js:77:13) npm WARN addRemoteGit at Socket.emit (events.js:169:7) npm WARN addRemoteGit at Pipe._onclose (net.js:469:12) npm WARN addRemoteGit git+ssh://git@bitbucket.org/<team>/module.git resetting remote C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0 because of error: { [Error: Command failed: git -c core.longpaths=true config --get remote.origin.url npm WARN addRemoteGit ] npm WARN addRemoteGit killed: false, npm WARN addRemoteGit code: 1, npm WARN addRemoteGit signal: null, npm WARN addRemoteGit cmd: 'git -c core.longpaths=true config --get remote.origin.url' } npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: Cloning into bare repository 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0'... npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: Permission denied (publickey). npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: fatal: Could not read from remote repository. npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: Please make sure you have the correct access rights npm ERR! git clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0: and the repository exists. npm ERR! Windows_NT 6.1.7601 npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" npm ERR! node v4.2.3 npm ERR! npm v2.14.7 npm ERR! code 128 npm ERR! Command failed: git -c core.longpaths=true clone --template=C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\_templates --mirror ssh://git@bitbucket.org/<team>/module.git C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0 npm ERR! Cloning into bare repository 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\ssh-git-bitbucket-org-<team>-module-git-2a4d53e0'... npm ERR! Permission denied (publickey). npm ERR! fatal: Could not read from remote repository. npm ERR! npm ERR! Please make sure you have the correct access rights npm ERR! and the repository exists. npm ERR! npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues> ... [ssh-agent] Stopped. 

Puede ser útil:

  • Versión de Jenkins: 1.628
  • Plugin de cnetworkingenciales: 2.1.3
  • Plugin de Git: 2.3.5
  • Complemento de cliente Git: 1.19.6
  • Complemento de Bitbucket: 1.1.2
  • Complemento de cnetworkingenciales SSH: 1.12
  • Complemento del agente SSH: 1.13

Tuve un problema similar en un Jenkinsfile donde npm no accedería a un repository de git privado, aunque podría hacerlo como el mismo usuario desde la command-line. Parecía como si se estuviera ignorando .ssh/config . Pude Jenkinsfile esto con el siguiente fragment en mi Jenkinsfile :

 sh "eval \$(ssh-agent); ssh-add /home/tomcat/.ssh/mysshkey; npm install" 

Debes generar un token OAuth en Bitbucket, mira la sección Crear consumidor. Entonces puede usarlo con https de esta manera:

 "dependencies": { "module": "git+https://x-token-auth:{access_token}@bitbucket.org/user/module.git" }