OHDSI Home | Forums | Wiki | Github

How do I use the OHDSI Continuous Integration (CI) environment?

We are going to begin doing some unit testing for the service layer related to Hermes/Circe/Achilles, and the question is how do we register unit tests with the server and have them run.

Are these tests written in java? Is there any sort of sub-classing we need to do to define a ‘unit test’?

We basically need the general infrastructure information so we know what server we need to connect with and do work on, and also a link to some ‘getting started’ material that can help us get on our way.

Thank you!

-Chris

Chris, can you join the call with Frank tomorrow with some of our Java folks to discuss?

Please also coordinate with @msuchard, since he set up the continuous integration for some of our tools already (inc. SqlRender).

SqlRender uses Travis CI (see SqlRender/.travis.yml). Martijn and I are currently building with ant, but maven is certainly a more modern approach. In other (non-OHDSI) Java projects, I use the JUnit framework called via ant/maven; for SqlRender, we just unit-tests in R (testthat package).

I’ll let @lee_evans comment more on this but he has setup a Jenkins server which he was considering for use as our CI environment. I’m not familiar with Travis (or Jenkins for that matter) but I would like to see us standardize on one of the platforms.

Travis CI is a service for continuous integration. It provides no-cost public repositories to open source projects. It supports linux builds/tests and includes support for databases like postgreSQL and mySQL: http://docs.travis-ci.com/user/database-setup/

Jenkins is a popular open source CI server and there is a service running Jenkins in the cloud:
https://www.cloudbees.com It does not provide no-cost public repositories for free to open source projects.

Neither service supports testing with Oracle, SQL Server and PostgreSQL databases or builds on Windows OS on their cloud servers. Those are additional requirements for many OHDSI applications so I have deployed our own OHDSI Jenkins CI Windows server on AWS with Oracle, SQL Server and PostgreSQL databases for OHDSI CI build/test.
I am also planning to deploy a Jenkins CI ‘slave’ linux server in AWS to support OHDSI build/test on linux so we can cover that too.

In the OHDSI wiki, I will document how to access the OHDSI Jenkins CI server and how to setup CI build/test jobs. A first draft of the documentation should be available early next week. The goal is to have a fully automated build/test/deployment process with github hooks, integration with an OHDSI nexus maven artifacts repository and automatic deployment of OHDSI services/web UIs to OHDSI AWS servers.

Lee, is there any info on the wiki yet that I can share with my developers?

Hi Jon,

I posted some basic info in a few pages I added to the Developer Guidelines wiki page:

http://ohdsi.org/web/wiki/doku.php?id=development:guidelines

Happy holidays,
Lee

Perfect! Thank you Lee.

Are these the same ones as Continuous Deployment Tools?
I’ve just bumped into one and saw some really good best ci cd tools. Although, the selection of the right CI and CD tool depends entirely on your requirements and use cases.

t