El otro día en el trabajo, tuve que configurar Team City, para que haga un deployment automático de una aplicación, cada vez que alguien del equipo subiera código nuevo al repositorio.
Lo que primeramente hice fue, compartir la carpeta de la maquina donde quería hacer el deployment (en mi caso un servidor de integración). Cuando la compartí, no le puse usuario ni password, para que sea más sencillo.
Después configure una nueva tarea debajo de las de build, para que copie los bits recién compilados a la carpeta en este servidor.
La tarea tenia simplemente el comando
xcopy C:\Temp\App\ \\ServerDeIntegracion\App\ /S /Y
Cuando se ejecutaba esta tarea me daba un error:
Invalid drive specification
Haciendo otras pruebas usando robocopy en lugar de xcopy tuve un error de Access Denied:
La solución que encontré fue crear un archivo bat con los siguiente comandos:
net use t: \\ServerDeIntegracion\App\ [Password] /user:dominio\usuario xcopy C:\Temp\App\ \\ServerDeIntegracion\App\ /S /Y
Lo que hace el primero es hacer disponible el recurso de la red en la sesión de Team City y luego de tenerlo disponible ejecuta la copia de archivos.
Este archivo bat lo llamo desde una tarea de tipo Command Line en Team City.
Espero les sirva!
Nos leemos