0

Getting Started with Continuous Integration with TeamCity in under 5 minutes!

by Jon 31. August 2010 22:17

Continuous integration is a way of increasing your productivity by automating the repetitive tasks you perform each day and as a function will improve the quality of the code you check into your source control system. It will give you more free time to develop better code, and will help you constantly improve yourself. If you find yourself doing the same thing day after day as a developer you really start automating those steps.

The good thing is it is really easy to setup a Continuous Integration. Within 5 minutes you could have installed and configured a system that will automatically compiled your code on a server when you perform a check-in and have any problems automatically reported back to you! What are you waiting for:

Make sure you choose a free TCP Port
Make sure you choose a free TCP port

Confirm the url for the Team City Installation has the correct port
Confirm the url for the Team City Installation has the correct port

Start the Services, and start TeamCity
Start the Services, and start TeamCity

Team City Starts
Team City Start

Accept the licence
Accept the licence

Enter an administrators details
Enter an administrators details

Team City is Started, and is prompting you to create a project
Team City is Started

Enter a project name
Enter a project name

Create a Build Configuration Called Build
Create a Build Configuration Called Build

Enter your SVN Settings for the project
Enter your SVN Settings for the project

Test the SVN Connection
Test the SVN Connection

Choose VisualStudio (2005/2008 or 2010) as a Build Runner, and Enter the Solution you want to Build
Choose VisualStudio as a Build Runner, and Enter the Solution you want to Build

Confirm the solution Builds from the Projects Screen, and then edit the Build
Confirm the solution Builds from the Projects Screen, and then edit the Build

Set the build to be automatically triggered when you Commit changes to SVN
Set the build to be automatically triggered when you Commit changes to SVN

and that's it, your Continuous Integration Server is up and running. Every time you commit a code change to SVN your solution will be automatically compiled. The sky is the limit, you can move over to a MSBuild Build Runner, perform automated tests, Generate Documentation, Code Statistics, Build and Install Deployment Packages. I've only just started using CI/TeamCity in my day job but I plan to Blog about my experiences as I implement more features. So far I have moved the office Build over to msBuild, automated developer statistics and RSS feed, and automated deployment to our test server. So expect some Blog entries on this in the coming weeks...
0

Source Control is really blooming important

by Jon 3. May 2010 14:30

I cant stress enough how important and more importantly how useful source control is. If you are not using source control for your projects your essentially coding drunk. There is really no excuse as most is either free or very very cheap to get amazing features. Even if you are a one man or woman coder you should be using source control, as there are a whole heap of benefits:

  • You get a backup of your projects out of the box, if something goes wrong with your pc your safe (as long as your source controlling to a difference machine
  • You can see what changes you made and when and the reasons why, very useful when talking to customers or trying to find an issue
  • It makes you a better coder, with source control you get to see your changes and review them before you commit, removing mistakes or any test code you wrote
  • You can code with confidence, try ideas out and refactor with the confidence that you can always roll back to the last version you committed.
  • Patching, and quick fixes become a breeze. When you release a version of a website or system you can branch and keep a facsimile copy of what has been released. If you find a bug you can issue a bug fix rather than upgrading the entire system
  • If your company grows beyond one person, or you need to get development help you can easly hive some of the work out to anyone anywhere in the world

What source control system should we use?


There are a whole heap of source control systems available but we use a SVN based system. The other alternatives include SourceSafe, CVS, Team Server, and Mercurial (In the form of VisualHG), but we are sticking with SVN for now because it is stable and mature and works. As a source control system is the gatekeeper to your code it is important to have confidence in it, SVN is old enough for this and new enough to have lots of nice features. We will probably move to VisualHG in future, or team server but for now its not worth the leap.

So what software do you need to install?


Well it kind of depends what level of integration you want but here is a quick summary of what we use:

  • TortoiseSVN - Is the SVN client of choice for windows, it integrates into windows explorer and it is the only thing you need to get source control running. The best thing is it is mature, it is an opensource project but it has been running for years as SVN and before that for years as TortoiseCVS. This is the daddy of source control and its seamless integration into windows is fantastic. The best thing is you dont even need a server as you can run it against a file based SVN source repository without a server.
  • Visual SVN Server - SVN will work without a server, but if you want to simplify things and increase security this is a great server that just works. Again it is free but not open source, you dont need IIS as it will install its own version of Apache when it installs.
  • VisualSVN Client - If you want integrated source control in Visual Studio install this, it works in conjunction with tortoise so it is rock solid when it comes to stability. It has lots of great features when it comes to merging and branching, but it does cost. However at $49 a seat the cost is minimal to the advantages. You can download a free demo to see what you think, but you will make the small cost back in hours in increased productivity.
  • Stats SVN- Is a java application which generates html stats for a SVN repository. We run this every night to generate up to date web statistics on the project.

In summary install tortoiseSVN and see what you think, it will make you more productive.

Tags: , , , ,

development | SVN | vs2008 | windows phone 7

Powered by BlogEngine.NET 2.0.0.36
Original Design by Laptop Geek, Adapted by onesoft, and finally some tiny tweaks by JonAlb