No se puede ejecutar Git pull en PowerShell en TFS Build Pipeline

En mi canalización actual necesito mover otro repository que el actual, pero cuando bash ejecutar el git pull (ya sea con powershell o cmd) simplemente se bloquea y nunca se mueve.

Si pruebo los commands donde se ejecuta el agente, se ejecutan correctamente.

Este es mi script powershell:

Write-Host (Get-Location) Set-Location -Path xxx Write-Host (Get-Location) #Update the repository, with no prints Write-Host "Updating" Invoke-Expression "& git pull origin develop --verbose" Write-Host "Updated" exit 0 

Cuando ejecuto esto, obtengo la "Actualización" pero luego simplemente bloquea allí y no pasa nada.

¿Alguien puede indicarme la dirección correcta para hacer esto?

Me encontré con el mismo problema, con muchos scripts de PS1 para build proyectos de Delphi en TFS 2017. Siempre y cuando hayamos usado agentes de la versión 1.105.7, todo estaba bien. Al actualizar a los nuevos agentes (2.120.2), las secuencias de commands ya no podían get cambios y simplemente bloqueaban la canalización de compilation.

Después de hacer una gran investigación, encontré una diferencia entre las dos versiones del agente:

  • los agentes antiguos (1.105.7) usaban las configuraciones del sistema para el atributo git cnetworkingential.manager , que se configuró como " administrador "
  • los nuevos agentes (2.120.2) borraron de alguna manera esta configuration, es decir, no se instalaron las cnetworkingenciales y el script "solicitó" el nombre de usuario / contraseña y, por lo tanto, bloqueó

Para encontrar este problema, solo tuve que volver a configurar el asistente de cnetworkingenciales en la máquina de compilation.

 \path\to\tfs\agent\externals\git\cmd\git.exe config --system cnetworkingential.helper manager 

Puede usar directamente el command git a través de la tarea de command-line, como a continuación: enter image description here

Primero asegúrese de que pueda ejecutar manualmente el command git correctamente en el agente con su count de services de compilation . Si el otro repository necesita alguna authentication, la secuencia de commands o el command también debe include la authentication.

También intente habilitar su definición de compilation para ejecutar Git.exe . En la pestaña de variables establece esta variable:

 system.prefergit true 

Más detalles, consulte este tutorial: Ejecute los commands de Git en un script

Si sigue apareciendo el error, sugiérale que habilite un logging más detallado para la solución de problemas. Para ello, siga: habilite el logging de debugging de TFS Build agregando una variable llamada system.debug y estableciendo su valor en ' true '.

Si esto ayuda a alguien, pude superar este problema usando lo siguiente:

 Invoke-Expression "& git -c http.extraheader='AUTHORIZATION: bearer $(System.AccessToken)' pull --progress origin develop -q" 

Parece que la request fue bloqueada para pedir cnetworkingenciales.