views:

58

answers:

4

I'm curious. I'm looking into creating a CI server and wondering, after the first couple of obvious tasks, what else can an automated build do?

The tasks that I'm aware of (not in any order):

  • Compile (debug/release versions)
  • Code style conformance
  • Automated tests (unit/integration/etc.)
  • Code coverage
  • Version incrementing
  • Deployment

I'm not looking for the names of software, the build engine to use, or anything like that; just the repetitive and (maybe) important tasks that can be automated to make the build process ridiculously simple from an end-user perspective.

+1  A: 

Reporting? You may want to report the things you find during those tasks you outlined above. You could also do things such as duplication reporting, or if you run something like findbugs you could report on issues found (e.g. http://findbugs.sourceforge.net/bugDescriptions.html)

You could also generate a releasable package of the product in the build.

digiarnie
A: 

It all about automation. If you can find something that needs to be done, then automate it. For example you can do tonnes of code analysis, or testing. Ultiamtely it comes down to repeating things easily. Find what you need to do to improve quality and automate those(And I strongly fally down on the side of more testing is better).

Preet Sangha
+3  A: 
  • Building documentation
  • Building installers
  • Creating web sites
  • Initialising virtual images
  • Setting up databases
Si
+4  A: 

The simple answer to this, is basically anything that a script can be written for.

For example if you are using CruiseControl, anything that you can do from an ant script can be automated; and that includes calling other (not necessarily ant scripts as well).

That being said, you've got most bases covered in your initial list. To that I would add

  • Generation of documentation
  • Repository maintencnace and backup operations
  • Auto-update company website, e.g. whenever there's a new release of software, documentation is updated, etc
  • Reports, e.g. aggregate and summarise bug tracker issues and activity per project/ product

HTH

bguiz