¿Cómo usar el file de id SSH de un objective ANT llamado por Jenkins que usa Composer para clonar la biblioteca de GitLab?

Estamos desarrollando algunos sitios con modules comunes y usando GitLab para alojar los repositorys.

GitLab utiliza las teclas de implementación para permitir que services como Jenkins clonen / comprueben / extraigan el repository para comstackciones y testings automatizadas. Tenemos las keys públicas / privadas configuradas en el server que ejecuta Jenkins, y el proyecto se clona exitosamente desde GitLab.

Donde estamos despegando es usando una ANT para que el process de compilation de Jenkins ejecute una installation de Composer y actualice las bibliotecas usadas por el proyecto.

A medida que desarrollamos las bibliotecas junto con el (los) proyecto (s), nuestra configuration de Composer se configura para clonar desde los repositorys de GitLab. Esto funciona bien en nuestras máquinas de desarrollo, ya que Composer está utilizando la key pública / privada del usuario para conectarse al repository de GitLab.

El problema es Jenkins: el "usuario" que intenta clonar el repository es Jenkins. Intenté crear una carpeta para jenkins en el directory de inicio y generar un par de keys pública / privada bajo el directory .ssh, y luego agregué /home/jenkins/.ssh/config :

 host gitlab.local HostName gitlab.local IdentityFile ~/.ssh/id_rsa User git 

Los permissions son:

 drwx------ 2 jenkins jenkins 4096 Mar 16 09:07 ./ drwxr-xr-x 3 jenkins jenkins 4096 Mar 16 09:07 ../ -rw------- 1 jenkins jenkins 84 Mar 16 09:07 config -rw------- 1 jenkins jenkins 1679 Mar 16 09:07 id_rsa -rw-r--r-- 1 jenkins jenkins 397 Mar 16 09:07 id_rsa.pub 

El objective ANT es bastante sencillo:

 <target name="composer-install" description="Download and install dependencies using Composer"> <exec executable="composer" failonerror="true"> <arg value="install"/> </exec> </target> 

Y Composer está instalado globalmente en el sistema.

Sin embargo, no parece que Jenkins esté cargando la configuration de SSH desde el directory que creé, y no puede autenticarse cuando ANT-trigger Composer intenta clonar desde GitLab.

¿Hay alguna manera de hacer que esto funcione?

Una opción es colocar el par de keys pública / privada en el file composer.json , pero luego cada desarrollador necesitará estas keys en sus computadoras para instalar / actualizar en sus PC.

Otra opción es ejecutar Satis y hacer que Composer obtenga los packages desde allí, pero esto no es ideal, ya que la biblioteca Satis debe ser reconstruida y retrasará el process de compilation.