Automator for Deploying WebObjects Application

For the Pachyderm project, we wanted a way to automatically update, build and deploy a WebObjects application and its supporting framework. The initial reaction was to just use a shell script, with xcodebuild running on the server to build the appropriate projects.

That didn’t work for us, because our server is still running 10.3 (with the appropriate older XCode dev. kit), while we’ve moved on to 10.4 and XCode 2.1 for development- so our server can’t understand the .xcodeproj files and barfs appropriately. Doh.

So, King and I whipped up an Automator-based workflow that runs on one of our dev. boxes. It first runs a shell script to update the source code from subversion, then builds the framework and application. It then runs a shell script to record the subversion revision number in a file in the compiled application (so we can display the revision number for bug reports etc… and not pollute our source code with revision numbers). Then, it connects to the server over afp, moves the old build products out of the way, and copies the new ones into place. About an hour later, WOMonitor comes through and cycles the app.

Basically, there is one “master” workflow that runs several nested workflows. This “master” is saved as an application, and I’ve set iCal to launch it every morning at 1:00am.

Yes. Source code management and enterprise application deployment with Automator and iCal 🙂

It seems to work well, but we initially had some permissions problems. It will also make it trivial for use to update the app at will.

For the Pachyderm project, we wanted a way to automatically update, build and deploy a WebObjects application and its supporting framework. The initial reaction was to just use a shell script, with xcodebuild running on the server to build the appropriate projects.

That didn’t work for us, because our server is still running 10.3 (with the appropriate older XCode dev. kit), while we’ve moved on to 10.4 and XCode 2.1 for development- so our server can’t understand the .xcodeproj files and barfs appropriately. Doh.

So, King and I whipped up an Automator-based workflow that runs on one of our dev. boxes. It first runs a shell script to update the source code from subversion, then builds the framework and application. It then runs a shell script to record the subversion revision number in a file in the compiled application (so we can display the revision number for bug reports etc… and not pollute our source code with revision numbers). Then, it connects to the server over afp, moves the old build products out of the way, and copies the new ones into place. About an hour later, WOMonitor comes through and cycles the app.

Basically, there is one “master” workflow that runs several nested workflows. This “master” is saved as an application, and I’ve set iCal to launch it every morning at 1:00am.

Yes. Source code management and enterprise application deployment with Automator and iCal 🙂

It seems to work well, but we initially had some permissions problems. It will also make it trivial for use to update the app at will.

XCode 1.5

Apple released Xcode v1.5 today. Some really nice new features in there, but the 2 that will likely affect me the most are:

  • CodeSense Autocompletion for java code (yay!)
  • Subversion SCM integration

The CodeSense Autocompletion is so totally helpful for me, since I don’t seem to keep the entire java class library in my head, so being prompted is a nice way to skip the JavaDocs (or even Google – yes, I am a Google-enabled developer 😉 )

Subversion should be nice, since it’s apparently a smoother SCM than CVS is, and apparently handles packages and bundles better (which is important for dealing with WebObjects projects. I say apparently because I haven’t tested it yet. I’ve downloaded Wilfredo SanchezSubversion package for MacOSX and will try that out ASAP

The Apple FTP servers were pretty swamped this morning, but after about 10 attempts I got a slot, and grabbed the image sections. Bandwidth was decent, averaging about 400K/sec for the duration, so their strategy of limiting simultaneous users works once you get in.

UPDATE: Looks like XCode doesn’t like using the local file:///… style of repository, or perhaps there is something missing. It’s claiming that it’s missing:

dyld: /usr/local/subversion/bin/svn can't open library: /usr/local/apache/lib/libaprutil-0.0.dylib (No such file or directory, errno = 2)

Apple released Xcode v1.5 today. Some really nice new features in there, but the 2 that will likely affect me the most are:

  • CodeSense Autocompletion for java code (yay!)
  • Subversion SCM integration

The CodeSense Autocompletion is so totally helpful for me, since I don’t seem to keep the entire java class library in my head, so being prompted is a nice way to skip the JavaDocs (or even Google – yes, I am a Google-enabled developer 😉 )

Subversion should be nice, since it’s apparently a smoother SCM than CVS is, and apparently handles packages and bundles better (which is important for dealing with WebObjects projects. I say apparently because I haven’t tested it yet. I’ve downloaded Wilfredo SanchezSubversion package for MacOSX and will try that out ASAP

The Apple FTP servers were pretty swamped this morning, but after about 10 attempts I got a slot, and grabbed the image sections. Bandwidth was decent, averaging about 400K/sec for the duration, so their strategy of limiting simultaneous users works once you get in.

UPDATE: Looks like XCode doesn’t like using the local file:///… style of repository, or perhaps there is something missing. It’s claiming that it’s missing:

dyld: /usr/local/subversion/bin/svn can't open library: /usr/local/apache/lib/libaprutil-0.0.dylib (No such file or directory, errno = 2)