forked from broadinstitute/cromwell
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
118 lines (103 loc) · 3.49 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import Settings._
import Testing._
lazy val core = (project in file("core"))
.settings(coreSettings:_*)
.withTestSettings
lazy val gcsFileSystem = (project in file("filesystems/gcs"))
.settings(gcsFileSystemSettings:_*)
.withTestSettings
.dependsOn(core)
.dependsOn(core % "test->test")
lazy val databaseSql = (project in file("database/sql"))
.settings(databaseSqlSettings:_*)
.withTestSettings
lazy val databaseMigration = (project in file("database/migration"))
.settings(databaseMigrationSettings: _*)
.dependsOn(core)
.withTestSettings
lazy val dockerHashing = (project in file("dockerHashing"))
.settings(dockerHashingSettings: _*)
.dependsOn(core)
.dependsOn(core % "test->test")
.withTestSettings
lazy val cromwellApiClient = (project in file("cromwellApiClient"))
.settings(cromwellApiClientSettings: _*)
.withTestSettings
lazy val services = (project in file("services"))
.settings(servicesSettings:_*)
.withTestSettings
.dependsOn(core)
.dependsOn(databaseSql)
.dependsOn(databaseMigration)
.dependsOn(core % "test->test")
lazy val backendRoot = Path("supportedBackends")
lazy val backend = (project in file("backend"))
.settings(backendSettings:_*)
.withTestSettings
.dependsOn(core)
.dependsOn(services)
.dependsOn(core % "test->test")
lazy val sfsBackend = (project in backendRoot / "sfs")
.settings(sfsBackendSettings:_*)
.withTestSettings
.dependsOn(backend)
.dependsOn(gcsFileSystem)
.dependsOn(backend % "test->test")
.dependsOn(services % "test->test")
lazy val tesBackend = (project in backendRoot / "tes")
.settings(tesBackendSettings:_*)
.withTestSettings
.dependsOn(sfsBackend)
.dependsOn(backend % "test->test")
lazy val sparkBackend = (project in backendRoot / "spark")
.settings(sparkBackendSettings:_*)
.withTestSettings
.dependsOn(sfsBackend)
.dependsOn(backend % "test->test")
lazy val jesBackend = (project in backendRoot / "jes")
.settings(jesBackendSettings:_*)
.withTestSettings
.dependsOn(backend)
.dependsOn(gcsFileSystem)
.dependsOn(backend % "test->test")
.dependsOn(gcsFileSystem % "test->test")
.dependsOn(services % "test->test")
lazy val engine = (project in file("engine"))
.settings(engineSettings: _*)
.withTestSettings
.dependsOn(core)
.dependsOn(dockerHashing)
.dependsOn(services)
.dependsOn(backend)
.dependsOn(gcsFileSystem)
.dependsOn(core % "test->test")
.dependsOn(backend % "test->test")
// In the future we may have a dedicated test backend like the `TestLocalAsyncJobExecutionActor`.
// For now, all the engine tests run on the "Local" backend, an implementation of an impl.sfs.config backend.
.dependsOn(sfsBackend % "test->compile")
.dependsOn(gcsFileSystem % "test->test")
lazy val root = (project in file("."))
.settings(rootSettings: _*)
.enablePlugins(DockerPlugin)
.withTestSettings
// Full list of all sub-projects to build with the root (ex: include in `sbt test`)
.aggregate(core)
.aggregate(dockerHashing)
.aggregate(gcsFileSystem)
.aggregate(databaseSql)
.aggregate(databaseMigration)
.aggregate(services)
.aggregate(backend)
.aggregate(sfsBackend)
.aggregate(sparkBackend)
.aggregate(jesBackend)
.aggregate(tesBackend)
.aggregate(engine)
.aggregate(cromwellApiClient)
// Next level of projects to include in the fat jar (their dependsOn will be transitively included)
.dependsOn(engine)
.dependsOn(jesBackend)
.dependsOn(tesBackend)
.dependsOn(sparkBackend)
// Dependencies for tests
.dependsOn(engine % "test->test")