Question

We currently use a hand-rolled setup and configuration script and a hand-rolled continuous integration script to build and deploy our application. I am looking at formalizing this somewhat with a third party system designed for these purposes.

I have looked into Phing before, and I get that it's basically like Ant. But, my Ant experience is somewhat limited so that doesn't help me much. (Most of the Java work I have done was just deployed as a jar file).

I have looked into Cruise Control before, and I understand that phpUnderControl is a plug-in for CC. But, Phing says it also works with CC. So I am not clear on the overlap here. Do I need both Phing and phpUnderControl to work with CruiseControl, or are they mutually exlclusive?

What I need exactly is something that can:

  • Check out source from SVN
  • Install the database from SQL file
  • Generate some local configuration files from a series of templates and an ini file
  • Run all of our unit tests (currently ST, but easy to convert to PHPUnit) and send an email to the dev team if any tests break (with a stack trace of course)
  • Generate API documentation for the application and put it somewhere
  • Run a test coverage report

Now, we have just about all of this in one form or another. But, it'd be nice to have it all automated and bundled together in one process.

Was it helpful?

Solution

phing is pretty much ant written in PHP where phpUnderControl adds support for PHP projects to CruiseControl and uses phing or ant on the backend to parse the build.xml file and run commands.

I just set up CruiseControl and phpUnderControl and it's been working great. It checks out my SVN, runs it through phpDocumentor, PHP_CodeSniffer, and PHPUnit whenever we do a check in. Since it's all based off of the build.xml file you can run just about any software you want through it.

OTHER TIPS

I'm sure lots of people will say this by the time I've typed this but...

I know it's not PHP but we're finding Capistrano just the job for this kind of thing. It really is an excellent piece of software.

We've been using Phing, and the cost to set it up has been very low; it's really easy to learn even if you don't know ANT. I've had very bad experiences with CruiseControl (instability - going down randomly) - so I like the simplicity of Phing. Plus, it's easily extensible using PHP (in case you have a custom task that they don't support out of the box).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top