Overview

Documentation on a daily build process for map projects in the prod environment.

Details

The mapping tool contains an admin/daily-build project that is a proposed mechanism for generating and packaging a daily build as an artifact.

The  Release Processing Tools support generating a release even when map records for a project are not in a final state.  The "process release" mojo will generate RF2 data for any map records that are marked as ready for publication and ignore records that are in process.  The basic idea of a daily build is to run this process and then package the resulting data generated into an artifact that can be pushed up to a maven repository (e.g. Nexus or Archiva).

Looking at the admin/daily-build project, you can see that it is configured to call the "perform release" mojo on each of the currently configured IHTSDO projects (ICD10, ICD9CM, and ICPC).  The output directory chosen for each build is a directory under "target/" so that a later stage can use the truezip plugin to package the data as a .zip file and then attach it as an artifact for this maven module.

Automation

At the moment, there is no automation for a daily build. It could be configured either as a cron job or as a CI server invocation.

Manually Performing the Daily Build

The process can be run manually like this: 

cd /home/ihtsdo/code/admin/daily-build
mvn install -PDailyBuild -Drun.config=/home/ihtsdo/config/config.properties

The output will be three .zip file artifacts for each of the mapping projects that could then be pushed to https://nexus.ihtsdo.org.

References/Links