Category Archives: Automation

Just one more great cheers to @travisci

I’ve just finished preparing a demo for my upcoming talk at EPAM SEC 2013 regarding build tool Buildr.

The idea is to demonstrate usage of Buildr for building of some open source projects. I chosen next projects, written in different programming languages, CodeNarc on Groovy, JUnit on Java and spring-scala module on Scala.

It’s ok, I’ve done with switching of build to Buildr, but there is a constraint for talk – I cannot use my laptop to live demo. I was thinking about remote connection, VM preparation, and finally come up with idea to use Travis CI.

After some reading of documentation and playing with Travis CI build configuration I compete my set up, and it just wonderful how it’s easy and pretty straight forward to achieve continuous integration for open source project.

There was one trick though with using of Ruby kind of project to build Java related source code, but it was easily done with help of Bundler to install Buildr and then just execute it’s commands through

bundle exec buildr clean test

Here are my set ups:

Thanks Travis CI for great job.

#Deployment #orchestration tools

There is a set of open source deployment orchestration tools I’d like to keep in hands:

As for me this is much more interesting tool comparing to rest due it’s distributive nature, speed and scaleability. It provides a transport for Capistrano and seems not so hard to set up. It has one big issue – usage of torrent peer-to-peer transport protocol (BitTornado), in some companies it could be illegal to use. But torrent’s transport is a working horse in Murder’s case.

This tool is written in Ruby and this year was re-incarnated. After 5 years there is a new version 3.x with quite nice promises. We were used it at one project to deploy several huge Java applications but within scale Capistrano was lug a bit.

This tool is light-weight also written in Ruby. As for me it’s quite similar to Capistrano but seems should be a bit different due to used SSH library called  Weave https://github.com/cespare/weave.

That’s probably it to remind me some time later.

Vagrant for JEE Developer at #JEEConf

There is a presentation from my speech at JEEConf regarding Vagrant and it’s practical usage for JEE developer – http://www.slideshare.net/IzzetMustafaiev/simplify-jee-project-env-configuration-with-vagrant

In several words by using Vagrant and some provisioning tools, for example, Chef we can decrease routine to setting up development environments.

As for benefits:

  • development environment is like production
  • usage  of same set of recipes to set up testing or staging environments
  • effortless creation and destroying of env
  • easy sharing changes with testing team
  • less time spent on env configuration due to automation

In some time at JEEConf site will be a video from and if you’re interested you can check it out.

If your build wants to leave a daemon running behind…

If once upon a time you need to start something from Jenkins, Websphere Application Server for example, and to not to wait till server will be stopped and not to have stopped process after job finishes you can use approach described in next article https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller.

In my case I have a Linux machine and after start WAS always goes down, after I add

BUILD_ID=dontKillMe /app/was/.../startServer.sh server1

Now I have running server after finished job.