Jenkins svn export build step

En mi server de Jenkins, tengo un proyecto que verifica el código fuente de SVN y ejecuta un script de construcción llamado MakeInstaller.ps1 que se revisó junto con el código fuente. Es bastante sencillo y esta parte funciona muy bien.

Lo que no funciona bien es que parte de MakeInstaller.ps1 intenta hacer una export svn de una revisión específica de algún otro código fuente, pero no tiene las cnetworkingenciales para conectarse a SVN. Cuando ejecuto las comstackciones de compilation en mi PC esto está totalmente bien, porque Tortoise SVN tiene las cnetworkingenciales en caching.

Jenkins ya tiene mis cnetworkingenciales de SVN, pero eso solo se usa cuando Jenkins verifica el código fuente, no cuando mi script de compilation intenta verificar el código fuente.

He intentado:

  1. Instalar las herramientas de command-line SVN de Tortoise en la máquina que ejecuta Jenkins. Esto corrigió mi error inicial "svn.exe no encontrado", pero no tiene forma de conocer mis cnetworkingenciales para este server
  2. Incluso inicié session en el server SVN usando Tortoise SVN en esa máquina para intentar que guarde en caching las cnetworkingenciales, pero todavía no está funcionando. Supongo que es porque el service de Jenkins no se ejecuta bajo el mismo usuario con el que inicié session.

Sin embargo, siento que me estoy desviando por el path equivocado. Parece un poco extraño tener Tortoise SVN instalado en esa máquina junto con cualquier cliente SVN que el plugin Jenkins SVN ya esté usando.

Mi pregunta: ¿hay alguna manera de exportar SVN desde dentro de un script de construcción en Jenkins y hacer que use las cnetworkingenciales que Jenkins ya conoce? ¿Puedo usar el mismo svn.exe que el plugin Jenkins SVN está usando? Realmente no quiero include las cnetworkingenciales en el script de construcción en sí.

La mayoría de las preguntas similares que encontré implicó que fallara el check-out inicial debido a malas cnetworkingenciales, no un check-out que ocurre como parte del script de compilation.

Al final, terminé haciendo algo así como Jenkins: acceder a las passwords globales en powerhell

Tuve que usar EnvInject porque el complemento de enlace de cnetworkingenciales me estaba dando un error cuando traté de save el proyecto. Esto implicó agregar otra instancia de mi contraseña de SVN a Jenkins y codificar el nombre de usuario de Jenkins en mi script de compilation, pero está funcionando.

Ahora el script de compilation intenta autenticarse con un command ficticio svn info. Si estoy ejecutando el script en mi máquina local, eso funciona y procede sin un nombre de usuario o contraseña. Si el command dummy svn info falla, intenta iniciar session con –username Jenkins y –password $ env: svnpassword donde la variable de entorno svnpassword es provista por EnvInject.