integrate commerce server with a Continuous integration server - continuous-integration

Our main application uses Commerce Server 2002, we are currently in the process of upgrading to 2009. I am looking into setting up CC.net for both apps. I have it pulling from SVN and starting the build but it will fail because Commerce Server is not installed so the DLL's are not there.
I don't really want to do a full install of Commerce Server on the CI Server if I can avoid it. Does anyone have any experience / advice on setting up the CI Server / repo / project so that It would build without CS installed. currently we do not have any unit tests so that part is not an issue, its getting it to build and being able to do things like FXCop, etc.
Thanks

As far as I can see, there is no problem in put just the core DLLs of Commerce Server in a "References" directory created under the same structure of your source code.
I have been using this approach in many projects without problems so far.
Maybe, the only problem you'll have now (since you are not using this approach) is that you'll need to refactor a bit your solution to put the references.
Regards,
Alex

Related

Cruise Control Build Strategy

We currently have CruiseControl.NET (v.1.6.7981.1) running on a 'development integration server.' We have a number of separate .NET sites that operate under the same IIS site and therefore share a 'bin' folder. This is the required setup due to the CMS implementation.
With a shared bin folder, an assembly change from one site could throw an error and affect all the other sites.
What we do is build and deploy the single site that we're currently working on to the integration environment and then spot-check the other sites to ensure they are still working.
In order to have more immediate feedback on the builds, we are looking at utilizing triggers to build all solutions at the time of a checkin of any solution. Ideally, we would like to avoid having to edit each project's configuration when a new site is developed and brought into the integration environment.
Does this sound like a sound approach or is there a better way to go about this?
Thanks!

How to do continuous integration for c# application?

Can anyone advise what is the equivalent of hudson for c# application?
I used to use hudson as a build server for java performing auto deployment for java web and batch job application at scheduled timing and email notify technical team
I like to ask how can i do the same for c# application.
And is there any standard plugins like static code analysis tool in the build server which i can used to scan through the codes
In addition to the great tools mentioned by jamesj, TeamCity works pretty well too. I prefer it to CruiseControl, from a configuration usability perspective, and it is free given you stay within certain constraints.
If you've already invested in TFS as a source control, though, make sure you are getting your money's worth and use it for your builds and deployments too.
If you like Hudson, take a look at Jenkins. I've seen folks using it for .NET builds as well, though I haven't personally used it, and according to their page Jenkins used to be called Hudson, so it would probably be familiar to you.
TFS is great for continuous integration, but you can also use CruiseControl.NET with NAnt. Both of these should be able to run batch jobs, send emails and run automated deployments
StyleCop and FxCop both do static checking and both can be integrated into your build process.

What should I use for continuous integration given my circumstances?

I'm developing a project in C# using VS2010. I'm using svn 1.7 for my version control. What I want is a (FREE) tool that runs on the build server and checks for fresh commits. If the commit breaks the trunk then I want email notifications sent (I have a sendmail openbsd server on the network I can use). I also want this tool (or another tool) to run all my MSTest tests periodically and send emails if there is a failed test.
Any suggestions? I already built my own crude windows service to check for failed builds. But this was before I heard that tools for this sort of thing already exist. I could easily have this thing run all my tests with mstest.exe and then parse the xml results files, but I'm wondering if my time would be better spent just installing and configuring a proper tool for all of this.
There will be at most 4 developers.
Thanks in advance for the help!
I have some experience with TeamCity and Hudson/Jenkins.
I found TeamCity fairly easy to setup and it seems to meet your needs of:
MSTest integration out of the box
Email notifications
TeamCity is free for up to 20 build configurations and has an easy to use Web/GUI interface.
Have a look at CruiseControl.Net
built in support for Subversion
no limits on number of build configurations
email notifications using the 'Email Publisher'
web interface and desktop build notifications via CCTray

HowTo create a Setup Project for AppFabric / workflow based applications

i am interested in creating a setup tool for our business application which is based on a Windows Service and some WF4 workflows, currently hosted in IIS/AppFabric.
As long as i want to provide the best possible installing experience to our customers, I want to include IIS and Appfabric Setup Prerequirements as well as a WindowsService application into one Application-Setup Project.
Is there a proper way of doing this? Can someone give me some Links and/or Tips?
best regards,
Chris
The standard approach is to build a Deployment Package and import that into IIS. Is uses Web Deploy, see http://go.microsoft.com/?linkid=9278654 for more details.
For client deployment using a setup project, I've been a fan of using WIX and an automated build script (MSBuild or Nant) in the past. It allows me the flexibility to script the build of the setup.exe, allowing me to make the changes I need (connection strings) in advance of deploying; leaving the entire process (regardless of environment [dev, prod, QC]) scriptable and automated.
For deploying the workflow components, its as simple as xcopy deployment which, like the above, is easily scriptable and automatable.

Building ONLY Labelled Versions with CruiseControl.net or TeamCity

We're currently using CruiseControl.NET as a continuous integration server for a number of ASP.NET web projects, but we're also evaluating TeamCity.
This is working great for our build server.
What we'd like to setup is a customer facing test server. I'm thinking that when we are happy for our latest development version to be released to the client for test, we could label it in SVN.
I'd then like a second build server to build this version ready for the client to see.
The question is this - is there any way to get either CruiseControl.NET or TeamCity to build only the latest labelled version of the code in a repository?
If anyone has any alternative suggestions, that'd also be greatly appreciated!
You could have a designated location or branch in your subversion repository e.g. \release then point the second TeamCity build server at that.
When your are happy with trunk then overwrite the existing location. The second build server will pick this up, build it, and even deploy it to a test server.
I don't think there's a way to do this directly in TeamCity. You can however configure your build trigger to filter on files and/or users. So, if you touch a given file to indicate release status in addition to or rather than labelling, you can use that.
The trigger filter could be, for example (untested):
+:/ReleaseVersion.cs

Resources