Ad-Hockery

ad-hockery: /ad·hok'@r·ee/, n.
Gratuitous assumptions... which lead to the appearance of semi-intelligent behavior but are in fact entirely arbitrary. Jargon File

Grails builds on Travis CI

Travis CI is a cloud based continuous integration service. It’s a great way to automate test runs for projects hosted on GitHub. Since the Grails wrapper was added to Grails in version 2.1 you can use Travis to build Grails apps.

Travis is configured with a .travis.yml file in the root of your project. A simple configuration might look like this

language: groovy
script: ./grailsw refresh-dependencies
     && ./grailsw test-app

The refresh-dependencies command ensures that plugins and libraries are installed and available on the classpath when test-app runs. Without this you may find that test-app will fail if your app contains compile time references to plugins or libraries.

You can chain together as many commands as you like in the script section. For example one of my Grails plugins has the following configuration:

language: groovy
jdk:
  - oraclejdk7
branches:
  only:
    - master
script: ./grailsw refresh-dependencies
  && ./grailsw "test-app unit:"
  && cd test/apps/gson-test
  && ./grailsw refresh-dependencies
  && ./grailsw "test-app functional:"

This runs the plugin’s unit tests then changes directory into a test application and runs (headless) functional tests.

Travis will email you when builds fail and by default runs against all branches. In the example above I’ve configured it to only run when changes are pushed to master so that I can push unfinished changes to other branches without affecting the project’s build status.

Web Statistics