Friday, January 22, 2010

After his last great post about the difference between CI and Build Automation tools, Roy Osherove posted the next part about this.  Now he gives us 18 questions to ask when choosing CI and Automated Build tools.  It's a nice list of questions, so read this article http://weblogs.asp.net/rosherove/archive/2010/01/21/18-questions-to-ask-yourself-when-choosing-continuous-integration-and-build-automation-tools.aspx and the next time consider using this list when you have to make a choice.

1/22/2010 8:36:33 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Friday, January 15, 2010

Roy Osherove has posted a nice article about the difference between Continuous Integration Tools and Automated Build Tools.  Read it here: http://weblogs.asp.net/rosherove/archive/2010/01/14/the-difference-between-continuous-integration-tools-and-automated-build-tools.aspx

1/15/2010 8:30:51 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Wednesday, July 18, 2007
Our next chapter in the buildserver series. This time we will show you how you can make your NAnt buildscripts in VS 2005 with intellisense. If you want to create/change your NAnt build scripts you can use either just notepad or any other third party tool. But you can also use VS2005. And would it be easy if you also have intellisense then? Well this is possible
7/18/2007 1:11:43 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Tuesday, June 19, 2007
Last time I had post the all.build script for our buildserver. Those scripts has some includes to other scritps, which weren't included at that moment. Finally I have found some time to post the next chapter in which these scripts will be included. We will now show you the following scripts : Properties.build Buildscripts.refresh.build Clean.build Webapplication.install.build ccnet.config using all.build
6/19/2007 2:44:51 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Tuesday, April 17, 2007
In this chapter, we will show you how you can generate your NAnt build scripts. First we do it the manual way, but at the end you will see that we have a script, which automaticly creates our master.build scripts for all the projects we have defined in our script generator. There will be a follow up for this article in the next chapter to discuss the a few build scripts which are called from within this script.
4/17/2007 8:13:22 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Friday, April 13, 2007
In this chapter we will show you how we can add a project to our cruisecontrol.Net configuration file, so it will build our project. NAnt uses master.build files for building a project. In this chapter we show you also how this build file can be made.
4/13/2007 10:04:59 AM (Romance Standard Time, UTC+01:00)  #    Comments [1]  | 
 Tuesday, April 10, 2007

Finally the next part of my Buildserver article.  This time about the the project structure we are using.

First of all, let's see our project structure in Sourcesafe :

We can locate following folders:

  • Sources : Still in the project folder
  • BinIntern : The project compiled assemblies
  • BinExtern : external assemblies
  • Release : The officially deployed assemblies
  • Buildscripts: All the Cruisecontrol.net, Nant (MsBuild) scripts are located here. This folder has also a subfolder for each Visual Studio Project. In here you can find the master.build script for each project specifically.
  • Tools: All the correct versions of the tools (= the versions which are used in the scripts and sources).
  • Server and WebDashboard: Contains the configuration of CruiseControl.net like config files, projects, reports, style sheets…

This is it for this part.  Be sure to stayed tuned for the next part, as we will start with our first NAnt scripts.


Overview Buildserver chapters on my blog :

Chapter 1 : Introduction
Chapter 2 : CruiseControl.Net
Chapter 3 : Projects
Chapter 4 : Project Structure
Chapter 5 : NAnt and all our buildscripts

4/10/2007 8:13:40 AM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Thursday, June 08, 2006

Projects in CruiseControl.Net

The CruiseControl.Net tasks are divided in ‘Projects’.  There are several kinds of projects.  This is a possible list of projects on the server :

  • The Continuous Integration Build of an application
  • The Deployment Build of an application
  • Automatic generation of buildscripts for the Visual Studio projects of an application

The technical project leader or the architect/designer could also define specific projects on the server.

 

e.g. only checking FxCop rules, or only run the unit testing,...

 

Projects are defined in the XML way in ccnet.config.  It just a list of projects defined one after the other one.  But keep in mind that those projects could be run parallel (and they will).

 

For each project you have to create a <Project> element with following attributes:

  • Name
  • Work folders
  • Links with source control
  • Running scripts.  These are Nant Targets who can be separated in activities
  • Triggers

The official documentation of the <Project> element can be found here .

 

Continuous Integration Build

It’s a good thing to analyze and describe each project in the first place in a Use Case.

 

After this, you are able to create a sequence diagram :

 

Basic configuration of a Continuous Integration Build project

Here we will describe the first step for our configuration.  It’s very basic.  We just at our project and source control.  We will add other features like tasks, publishers,... later on.

So first create a working directory for your build server.  We propose for this ‘c:\buildserver’.

Secondly we will add the project to the cruise control server.  To do this, open the ccnet.config file in the C:\Program Files\CruiseControl.NET\server directory.

<cruisecontrol>
    <project
        name="ProjectX"
        webURL="http:\\localhost\ccnet"
        workingDirectory="C:\Buildserver">
        <sourcecontrol type="vss" autoGetSource="true" applyLabel="false">
            <executable>C:\Program Files\Microsoft Visual SourceSafe\Common\Vss\template\win32\SS.EXE</executable>
            <project>$/Projects\ProjectX\xxxxx.ProjectX</project>
            <username>VSSUser</username>
            <password>VSSPws</password>
            <ssdir>\\path to VSS DB\SourceDB</ssdir>
            <workingDirectory>Buildserver\ProjectX</workingDirectory>
            <cleanCopy>true</cleanCopy>
        </sourcecontrol>
    </project>
</cruisecontrol>


 

Overview Buildserver chapters on my blog :

Chapter 1 : Introduction
Chapter 2 : CruiseControl.Net
Chapter 3 : Projects
Chapter 4 : Project Structure
Chapter 5 : NAnt and all our buildscripts

6/8/2006 8:07:00 PM (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
 Tuesday, May 02, 2006

First of all I want to thank Diederik Krols for his help with a few problems I had.

CruiseControl.Net

In this chapter we will explain more CruiseControl.Net and CCTray.Net.

Installation of CruiseControl.Net

Download the latest version at the Thoughtworks website.

Now run the downloaded file (CruiseControl.NET-1.1-Setup.exe) to install CruiseControl.Net.  Just follow the instruction on screen and leave all options as default.  At the end restart your server.

Here we have encountered a problem (only one time).  It seems that our virtual directory isn’t created during the installation phase.  The error we got was that the user and password wasn’t correct, but the installation continued.

This could be solved by manually adding the Virtual Directory.  To do so, follow the next steps:

  1. Open IIS
  2. Create a new virtual directory
    1. Name : ccnet
    2. Directory : the standard installation dir (C:\Program Files\CruiseControl.NET\webdashboard)
    3. Add in the default documents also default.aspx.

Next step is to start the ccNet service manually.  But keep in mind that when starting the service it will run under the local account.  This account doesn’t have network rights to connect to the SourceSafe DB.  So you must have an account with enough rights.  Because for test purpose we are installing everything on our local machine and we will use our own account for the service.  If installing on a server ask the security people for a correct account.

From now on you could access the web dashboard of CruiseControl.net:

Local host: http://localhost/ccnet/
Access from other computers: :/ccnet">http://<servername>:<portnumber>/ccnet

Installation of CCtray

CCTray is a small client application for the team members.  With this application, they can follow up the build progress and is visible in the windows tray. 

To install CCTray, you can go to the web dashboard; there you will find a link for downloading CCTray.  Download this file and run it for the installation.  Just follow the instructions on the screen.

The color of the icon changes depending on the status of the CuirseControl.Net server:

  •  : The most recent build was successful
  •  : The most recent build failed
  •  : The server is unavailable, or returned an error status
  •  : The server is currently building the code

Right-clicking on a project displays a popup menu:

  • Force build Wakes the CruiseControl.NET server from its sleep and tells it to start building immediately.
  • Display Web Page Opens a browser at the CruiseControl.NET build web page for this project. The web page may also be launched by double-clicking the project.

Tray Icons

The following rules are applied, in this order, to determine the icon color:

  • If at least one build is red, the icon is red
  • If no builds are red but at least one is yellow, the icon is yellow
  • If no build are red or yellow, but least one is grey, the icon is grey
  • If all the builds are green, the icon is green

Balloon notifications

Balloon notifications use the standard Windows tray icon popup balloon whenever a build completes. Balloon notifications may be enabled/disabled.

Configuration

Advanced

Two configuration settings can be adjusted only by editing the configuration file directly:

  • Balloon messages
  • Icons

This is done in the cctray-settings.xml file.

Projects

After starting up CCTray doesn’t contain any projects.

You have to fill in your own projects.  To this follow these steps:

  1. Go to File - Settings
  2. At the bottom you will find the Build Servers section.  Here you can add your build servers and projects.  Click on the add button.
  3. Fill in the server with port number (ex: Servername:21234) and click Add Server.  No you will see a list of projects on this server.
  4. Choose your project and click OK.

Now you’re back in the setting screen of CCTray.  You will see that in the build server section, the selected project is visible.

Click on the OK button for leaving this screen.  You’re back on the main screen of CCTray.  And you see that the projects are also added here.

So this is it for this part.  In the next part we will describe how to add your VS 2003 projects in CruiseControl.Net with a Continuous Integration Build configuration.  In part 4 we will talk about using NAnt for our projects.


 

Overview Buildserver chapters on my blog :

Chapter 1 : Introduction
Chapter 2 : CruiseControl.Net
Chapter 3 : Projects
Chapter 4 : Project Structure
Chapter 5 : NAnt and all our buildscripts

5/2/2006 8:34:55 PM (Romance Standard Time, UTC+01:00)  #    Comments [1]  | 
 Thursday, March 30, 2006

Introduction

At this moment I have installed the first part of a build server for the customer I’m working at the moment.  We are using VS.Net 2003.

We have installed a Continuous Integration Build server.  The first part exists only of following steps:

  • Get latest version of SourceSafe
  • Build de solution
  • If necessary, create the IIS Virtual Directory

Somewhere in April, I’m going to add several tools to the build process:

  • nDepend
  • nUnit
  • FxCop
  • Simian

As for the build server itself, we use NAnt.  For our source control system we use Microsoft’s Visual Source Safe.
So stay tuned, as I will try to write down all my experience and how to set up a build server.  It will be in several parts and sometimes a file must be changed again.

At the moment we have following versions:

  • Microsoft Visual Studio .Net 2003
  • Microsoft Visual Source Safe : 6.0d
  • NAnt : 0.85 RC3
  • NAnt Contrib : 0.85 RC3
  • Cruise Control.Net : 1.1
  • CCTray : 1.1


Overview Buildserver chapters on my blog :

Chapter 1 : Introduction
Chapter 2 : CruiseControl.Net
Chapter 3 : Projects
Chapter 4 : Project Structure
Chapter 5 : NAnt and all our buildscripts

3/30/2006 9:23:09 PM (Romance Standard Time, UTC+01:00)  #    Comments [1]  |