Most users should not need to build Cromwell and can use pre-built Cromwell releases.

If for some reason you require a non-release version of Cromwell or are developing new Cromwell features or fixes, the following are required to build Cromwell from source:

First start by cloning the Cromwell repository from GitHub:

$ git clone git@github.com:broadinstitute/cromwell.git

Next change into the cromwell directory:

$ cd cromwell

If you require a specific version of Cromwell as a starting point, do the appropriate git checkout now.

Finally build the Cromwell jar:

$ sbt assembly

sbt assembly will build the runnable Cromwell JAR in server/target/scala-2.13/ with a name like cromwell-<VERSION>.jar. It will also build a runnable Womtool JAR in womtool/target/scala-2.13/ with a name like womtool-<VERSION>.jar.

Docker

The following Docker build configurations are supported. Most users will want Snapshot, resulting in an image like broadinstitute/cromwell:<VERSION>-SNAP.

Command Build Type Debug Tools Description
sbt server/docker Snapshot No Most common local build
sbt -Dproject.isDebug=true server/docker Debug Yes Local build with debugging/profiling
sbt -Dproject.isSnapshot=false server/docker Standard No Reserved for CI: commit on develop
sbt -Dproject.isRelease=true server/docker Release No Reserved for CI: numbered release