Continuous Integration – The pieces and parts!

I finally have some time to post about our Continuous Integration (CI) set up for ActionScript 2.0 and Flex/ ActionScript 3.0 projects. To continue on from the first post, I’ll explain all of the pieces & parts that are needed to get a similar CI system rolling.

First, the parts that you’ll need for any project:

  • The project files – I’ve created a very simple same project that you can download for testing.
  • SVN REPO for your project
  • Cruisecontrol to manage the CI
  • ANT so we can build the projects – This is included in the Cruisecontrol download.
  • Java

Next if you are going to build ActionScript 2.0 projects you’ll need:

  • Flash IDE for ActionScript 2.0 projects – Yeah a little bit of a bummer. You’ll need to install the IDE on the CI server so the projects can be built. I’m sure you could set it up with MTASC, but we needed to compile in the IDE.
  • FlashCommand to build ActionScript 2.0 projects using the IDE (Mac Version) – Mike Chambers built this nifty tool and I’ve been using it for a while since I work in Eclipse with my ActionScript 2.0 projects.
  • ASUnit for unit testing your ActionScript 2.0 projects
  • The stand-alone flash player

Finally if you are going to build Flex Projects you’ll want the following:

Yeah, that seems like a lot, but once everything is set up it is easy to maintain…almost set and forget. As a note, this is all going to be set up on a PC, I’m not a Mac guys, so sorry there, but I would hope the set up would translate nicely from PC to Mac. We now have the basic moving parts of the system. In my next few posts, I’ll explain setting up the system:

  1. Setting up Cruisecontrol
  2. Setting up an ActionScript 2.0 Cruisecontrol project
  3. Setting up an Flex Cruisecontrol project
  4. Integrating ActionScript 2.0 project unit test results
  5. Integrating Flex project unit test results

I’ll also provide sample files and packages as we go so you have something to start from.

Leave a Reply

Your email address will not be published. Required fields are marked *