Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automated Builds

I currently use subversion for my version control via AhnkSVN and Visual Studio. I recently started using Tree Surgeon to set up my projects. It creates a build script automatically using NAnt. I would like to be able to automate builds regularly projects within SVN. I like the idea of doing a build on every check in but nightly builds would work as well. I would give more information or more of my thoughts but figured I would leave it open and see what the SO community has to say.

like image 285
Adam Carr Avatar asked Aug 31 '08 02:08

Adam Carr


People also ask

What is automated build tool?

Automated Build Tool is a software that compiles the source code to machine code. Automation tools are used to automate the whole process of software build creation and the other related processes like packaging binary code and running the automated tests.

How do you create an automated build?

Create a “build” team in your organization. Ensure that the new “build” team has access to each repository and submodule you need to build. Go to the repository's Settings page. On GitHub, add the new “build” team to the list of Collaborators and Teams.

What is Automated build script?

Build scripts are the first step toward automating your build. These scripts come in all shapes and sizes – they can be shell or batch scripts, XML-based, or written in a custom or an existing programming language; they can be auto-generated or hand-coded; or they can be totally hidden inside an IDE.


2 Answers

You could use CruiseControl.Net, which can do a build on every check in, nightly builds, or however you want to do it. A quick google search suggests CC.Net has some integration with NAnt already.

like image 94
Tadmas Avatar answered Oct 02 '22 19:10

Tadmas


As other's have mentioned we use CCNET here, which we don't usually work on a nightly build, but instead go with a Continuous Integration strategy (every check-in).

I would advise doing the same, whether it be by yourself or within a team, because you can very easily set up unit testing to run on every checkin as well, FXCop testing, and a slew of other products.

If it's just you in a one man team, and you don't have too many projects on the go, I would also advise checking out Team City as an option, because it has a free version, and the reporting and setup is reportedly much simpler (it does look nice to me).

That said, we started with CCNET, and have grown several products too large to look at Team City on the free version and are very happy with what we have.

Features that help with CCNET include:

  • XML based configuration - you can usually copy and paste most of what you need.
  • More or less you'll be able to plug your treesurgeon script in as your build script, and point CCNET at that as an executable task to run the compilation.
  • Lots of documentation and very easy to set up nunit, ncover, fxcop, etc.
  • Taskbar app that will let you know the status of your projects at any time, and it can also fire off an email or keep an RSS feed with the same information.

But I'd definitely go with running a CI build on every check-in - for the most part will run the unit tests before checking in, but let the CCNET server handle run any applications/assemblies that would have dependencies on the assembly we're checking in, and they get re-built, and re-tested on every checkin.

Given it's free and takes very little time to set up - I'd highly recommend just going for it.

like image 29
crucible Avatar answered Oct 02 '22 19:10

crucible