forked from hmrc/plastic-packaging-tax-returns-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
89 lines (85 loc) · 4.59 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
import play.sbt.routes.RoutesKeys
import sbt.Def
import scoverage.ScoverageKeys
import uk.gov.hmrc.DefaultBuildSettings
import uk.gov.hmrc.versioning.SbtGitVersioning.autoImport.majorVersion
lazy val appName: String = "plastic-packaging-tax-returns-frontend"
val silencerVersion = "1.6.0"
lazy val root = (project in file("."))
.enablePlugins(PlayScala, SbtAutoBuildPlugin, SbtDistributablesPlugin)
.disablePlugins(JUnitXmlReportPlugin) //Required to prevent https://github.com/scalatest/scalatest/issues/1427
.settings(DefaultBuildSettings.scalaSettings: _*)
.settings(DefaultBuildSettings.defaultSettings(): _*)
.settings(SbtDistributablesPlugin.publishingSettings: _*)
.settings(inConfig(Test)(testSettings): _*)
.configs(IntegrationTest)
.settings(inConfig(IntegrationTest)(itSettings): _*)
.settings(majorVersion := 1)
.settings(useSuperShell in ThisBuild := false)
.settings(scalaVersion := "2.12.10",
name := appName,
RoutesKeys.routesImport ++= Seq("models._",
"uk.gov.hmrc.play.bootstrap.binders.RedirectUrl"
),
TwirlKeys.templateImports ++= Seq("play.twirl.api.HtmlFormat",
"play.twirl.api.HtmlFormat._",
"uk.gov.hmrc.govukfrontend.views.html.components._",
"uk.gov.hmrc.hmrcfrontend.views.html.components._",
"uk.gov.hmrc.hmrcfrontend.views.html.helpers._",
"views.ViewUtils._",
"models.Mode",
"controllers.routes._",
"viewmodels.govuk.all._"
),
PlayKeys.playDefaultPort := 8505,
ScoverageKeys.coverageExcludedFiles := "<empty>;Reverse.*;.*handlers.*;.*components.*;" +
".*Routes.*;.*viewmodels.govuk.*;metrics\\\\..*;features\\\\..*;test\\\\..*;.*(BuildInfo|Routes|Options).*;logger.*\\\\(.*\\\\);",
// TODO - Need to bump this
ScoverageKeys.coverageMinimumStmtTotal := 50.0,
ScoverageKeys.coverageFailOnMinimum := true,
ScoverageKeys.coverageHighlighting := true,
scalacOptions ++= Seq("-feature"),
libraryDependencies ++= AppDependencies(),
retrieveManaged := true,
evictionWarningOptions in update :=
EvictionWarningOptions.default.withWarnScalaVersionEviction(false),
resolvers ++= Seq(Resolver.jcenterRepo),
// concatenate js
Concat.groups := Seq(
"javascripts/application.js" ->
group(Seq("javascripts/app.js"))
),
// prevent removal of unused code which generates warning errors due to use of third-party libs
uglifyCompressOptions := Seq("unused=false", "dead_code=false"),
pipelineStages := Seq(digest),
// below line required to force asset pipeline to operate in dev rather than only prod
pipelineStages in Assets := Seq(concat, uglify),
// only compress files generated by concat
includeFilter in uglify := GlobFilter("application.js")
)
.settings(
// silence all warnings on autogenerated files
scalacOptions += "-P:silencer:pathFilters=target/.*",
// Make sure you only exclude warnings for the project directories, i.e. make builds reproducible
scalacOptions += s"-P:silencer:sourceRoots=${baseDirectory.value.getCanonicalPath}",
// Suppress warnings due to mongo dates using $date in their Json representation
scalacOptions += "-P:silencer:globalFilters=possible missing interpolator: detected interpolated identifier `\\$date`",
libraryDependencies ++= Seq(
compilerPlugin(
"com.github.ghik" % "silencer-plugin" % silencerVersion cross CrossVersion.full
),
"com.github.ghik" % "silencer-lib" % silencerVersion % Provided cross CrossVersion.full
)
)
lazy val testSettings: Seq[Def.Setting[_]] = Seq(
fork := true,
javaOptions ++= Seq("-Dconfig.resource=test.application.conf"),
unmanagedSourceDirectories += baseDirectory.value / "test-utils"
)
lazy val itSettings = Defaults.itSettings ++ Seq(
unmanagedSourceDirectories := Seq(baseDirectory.value / "it", baseDirectory.value / "test-utils"),
unmanagedResourceDirectories := Seq(baseDirectory.value / "it" / "resources"),
parallelExecution := false,
fork := true,
javaOptions ++= Seq("-Dconfig.resource=it.application.conf")
)