deployment msbuild build-automation sftp

deployment - ¿Tarea SFTP para msbuild?



build-automation (6)




¿Alguien sabe de una tarea SFTP para msbuild? Nos gustaría automatizar nuestras implementaciones para la producción, pero por razones de seguridad no permitimos el acceso de archivos compartidos SMB desde nuestro entorno de desarrollo / prueba / construcción a la producción.

En este momento, los desarrolladores implementan el código cargando manualmente los archivos usando FileZilla, a través de una conexión SFTP. Esto es bastante propenso a errores, por lo que estamos planeando automatizar la carga de SFTP. Aunque si hay algún otro mecanismo que no sea SFTP que sea igual de seguro, me gustaría utilizarlo en su lugar.

Estoy pensando solo en utilizar la tarea msbuild "exec" y un cliente ftp de línea de comandos como pscp. Pero si alguien ha desarrollado una tarea de sftp, eso sería genial.


Gracias,
Ricardo


edtFTPnet / PRO ofrece soporte completo para SFTP en .NET.

Si está interesado en comprar una copia, nos complace escribirle una tarea MSBuild SFTP, sería una característica práctica. Datos de contacto en el sitio.


Podría instalar WinSCP y simplemente usar la tarea de MsBuild Exec

Usé algo como lo siguiente para subir un archivo ISO a un servidor después de una compilación.

winscp.exe sftp://root:password;@192.168.0.200:22/uploaddir/ "c:/myfile.iso"


Instale putty y use las herramientas de línea de comandos para enviar sus archivos al servidor. Use pagent y claves para evitar la codificación rígida o escribir su contraseña repetidamente.



Normalmente hago EXACTAMENTE como Ryu ha hecho y uso WinSCP, sin embargo, llevo un paso más allá y uso las capacidades de scripting de WinSCP para mapear una implementación más personalizable.

He detallado esto en una publicación de blog que detalla la configuración completa:

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

sin embargo, la esencia básica de esto pasa en un archivo de script a WinSCP de la siguiente manera:

<Target Name="AfterBuild"> <!-- Set the path to your FTP program (winscp) --> <PropertyGroup> <PathToWinSCP>"C:/Program Files (x86)/WinSCP/winscp.exe"</PathToWinSCP> </PropertyGroup> <!-- Get the date as a string for our log filename--> <GetDate Format="yyyyMMdd"> <Output PropertyName="DateString" TaskParameter="Date"/> </GetDate> <!-- Convert the path to an absolute path --> <ConvertToAbsolutePath Paths="$(OutputPath)"> <Output TaskParameter="AbsolutePaths" PropertyName="OutputPath"/> </ConvertToAbsolutePath> <!-- Fire WinSCP and give it your script files name as well as passing it the parameter to this build --> <Exec Command="$(PathToWinSCP) /script=$(OutputPath)Deployment/FtpDeployment.config /parameter $(OutputPath) /log=$(OutputPath)FtpLog-$(DateString).txt" /> </Target>

y mi script se ve así:

option batch abort option confirm off open ftp://myUsername:[email protected] put %1%/* rm FtpDeployment.config exit


Hay muchas herramientas SSH basadas en .NET, tome una y envuélvala usando la tarea msbuild (cree la suya) o la tarea ccnet.

Ant tiene una tarea scp, si es posible, llame a un script ANT desde msbuild. sea ​​cual sea el caso, use una clave pública / privada fuerte para el cifrado.