Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Adding Continuous Integration to Play!

DZone's Guide to

Adding Continuous Integration to Play!

· DevOps Zone ·
Free Resource

Learn how integrating security into DevOps to deliver "DevSecOps" requires changing mindsets, processes and technology.

With services like Travis, it has become quite easy add setup Continuous Integration to projects. This post will show you quickly how to setup Travis to build and test your Play project. This assumes you have signed up for Github and Travis, and have authorised travis to connect to your github account. If you have not done this already, follow the Travis steps here.

  1. Create a .travis.yml file in the root of your Play project.
  2. Add the following contents.

    language: java
    env:
      - PLAY_VERSION=2.2.1
    before_script:
      - wget http://downloads.typesafe.com/play/${PLAY_VERSION}/play-${PLAY_VERSION}.zip
      - unzip -q play-${PLAY_VERSION}.zip
    script: play-${PLAY_VERSION}/play test
    
  3. Ensure travis is building your repository. Click on https://travis-ci.org/profile and ensure that your github repository is synchronised and building. Upon committing, your travis build should start.

    To save SBT from redownloading dependencies, you can use the experimental caching feature of Travis. However this is only available for private repositories.

     
    language: java
    cache:
      directories:
      - .sbt
    env:
      - PLAY_VERSION=2.2.1
    before_script:
      - wget http://downloads.typesafe.com/play/${PLAY_VERSION}/play-${PLAY_VERSION}.zip
      - unzip -q play-${PLAY_VERSION}.zip
    script: play-${PLAY_VERSION}/play test
    
  4. The source to this post can be found here

Learn how enterprises are using tools to automate security in their DevOps toolchain with these DevSecOps Reference Architectures.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}