I know a few folks are using Continuous Integration with their Umbraco builds, but is anyone using MSDeploy for deployment to servers? I'm struggling to see how to use it with a loose-website, rather than a Web Application Project.
I'm already using CruiseControl.net for bigger WAPs, but not for anything Umbraco-driven yet, and would like to.
I have been using MSDeploy (in Visual Studio). I currently have my project setup as a Web Application including all of the umbraco files. I recently switched to hg for my version control and this work very well since it doesn't put .hg folders in all subdirectories. I used to keep a seperate non-versioned umbraco install and used post-build events to copy all of my .ascx, .dlls, and other files to the non-versioned umbraco version. After building and copying this files I used WebMatrix's built in MSDeploy sync to update the production site. That process was too clunky and involved. I realy like the new process because it allows me to use Visual Studio's built in tooling, web.config transforms, and it is way easier to deal with.
I know you want to use a loose web site rather thatn the Web App project, so you may be able to use a the MSDeploy Provider dirPath as your source provider for your local copy on the integration server along with whatever provider you want for the destination. Take a look at the technet docs for the dirPath provider. It should be able to create a deployment package and deploy it based on your working local umbraco installation. http://technet.microsoft.com/en-us/library/ee207412(v=ws.10).aspx. Here is the full list of providers for MSDeploy http://technet.microsoft.com/en-us/library/dd569040(v=ws.10).aspx
Thanks Justin - presumably your Web App isn't set to build in the Solution Configuration, as that causes problems?
Thanks for the steer on MSDeploy providers... I've now got pretty close to a working deployment with a command line something like the following, wrapped in a CCnet Exec task;
"c:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath=C:\Projects\Website -dest:contentPath="www.sitename.com",wmsvc=servername,username=***,password=*** -skip:Directory=.*\\\.svn -enableRule:DoNotDeleteRule -xml
This seems to be doing the job, although I've got some more testing to do. Note I'm using the contentPath provider; this avoids having to know the full path on the destination server, so I can use the configured sitename from IIS.
Future things to look at are pre-/post- deploy events to handle an app_offline.htm file, which willl entail some Powershell probably. Although, the more I think about it, the more I think I should be using a Web App project then anyway... perhaps I'm trying to be too clever with just a loose website.
I use IISExpress mainly because one of my laptops is still using XP. But I wrote a simple batch command to start the site. To debug I just use the attach to process method in VS. As long as I don't use F5 to debug it works fine. I even wrote a quick VS macro to automatate the attach to process so it is really just a single click to start debugging my Web App project.
MSDeploy
I know a few folks are using Continuous Integration with their Umbraco builds, but is anyone using MSDeploy for deployment to servers? I'm struggling to see how to use it with a loose-website, rather than a Web Application Project.
I'm already using CruiseControl.net for bigger WAPs, but not for anything Umbraco-driven yet, and would like to.
Phil
I have been using MSDeploy (in Visual Studio). I currently have my project setup as a Web Application including all of the umbraco files. I recently switched to hg for my version control and this work very well since it doesn't put .hg folders in all subdirectories. I used to keep a seperate non-versioned umbraco install and used post-build events to copy all of my .ascx, .dlls, and other files to the non-versioned umbraco version. After building and copying this files I used WebMatrix's built in MSDeploy sync to update the production site. That process was too clunky and involved. I realy like the new process because it allows me to use Visual Studio's built in tooling, web.config transforms, and it is way easier to deal with.
I know you want to use a loose web site rather thatn the Web App project, so you may be able to use a the MSDeploy Provider dirPath as your source provider for your local copy on the integration server along with whatever provider you want for the destination. Take a look at the technet docs for the dirPath provider. It should be able to create a deployment package and deploy it based on your working local umbraco installation. http://technet.microsoft.com/en-us/library/ee207412(v=ws.10).aspx. Here is the full list of providers for MSDeploy http://technet.microsoft.com/en-us/library/dd569040(v=ws.10).aspx
Justin
Thanks Justin - presumably your Web App isn't set to build in the Solution Configuration, as that causes problems?
Thanks for the steer on MSDeploy providers... I've now got pretty close to a working deployment with a command line something like the following, wrapped in a CCnet Exec task;
This seems to be doing the job, although I've got some more testing to do. Note I'm using the contentPath provider; this avoids having to know the full path on the destination server, so I can use the configured sitename from IIS.
Future things to look at are pre-/post- deploy events to handle an app_offline.htm file, which willl entail some Powershell probably. Although, the more I think about it, the more I think I should be using a Web App project then anyway... perhaps I'm trying to be too clever with just a loose website.
Phil
I use IISExpress mainly because one of my laptops is still using XP. But I wrote a simple batch command to start the site. To debug I just use the attach to process method in VS. As long as I don't use F5 to debug it works fine. I even wrote a quick VS macro to automatate the attach to process so it is really just a single click to start debugging my Web App project.
is working on a reply...