This repository has been archived by the owner on May 9, 2022. It is now read-only.
/
PackagedWebapp.scala
66 lines (47 loc) · 2.2 KB
/
PackagedWebapp.scala
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
/*
Copyright 2010 Guardian News and Media
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.gu.deploy
import sbt._
import com.gu.versioninfo.VersionInfo
import com.gu.deploy.Preamble._
trait PackagedWebapp extends BasicWebScalaProject with VersionInfo {
val guardian_nexus = "Guardian Nexus" at "http://nexus.gudev.gnl:8081/nexus/content/groups/public"
def deployLibsVersion = "1.55"
val deployLibs = "com.gu" % "gu-deploy-libs" % deployLibsVersion % "runtime"
protected def artifact = projectName.value
protected def deployLibJar = this lib "gu-deploy-libs-*.jar"
private val distDir = outputPath / "dist"
private val distWorkingDir = distDir / "build"
private val artifactsDistName = "artifacts.zip"
private def artifactrep =
if (isDev) {
outputPath / "DEV" / "r2" / "ArtifactRepository"
} else {
Path fromFile "/r2/ArtifactRepository"
}
lazy val distOutputDir = artifactrep / artifact / "trunk" / buildName
def distributableElements: List[DistributableElement]
lazy val prepareDist = prepareDistAction dependsOn(`package`) describedAs "Lay out distribution folder"
def prepareDistAction = task {
FileUtilities.clean(distWorkingDir, log)
distributableElements foreach { _.addToDistribution(distWorkingDir, log) }
None
}
lazy val dist = distAction dependsOn (prepareDist) describedAs "Build artifact suitable for deployment"
def distAction = zipTask( (distWorkingDir ##) ***, distDir, artifactsDistName)
lazy val publishDist = publishDistAction dependsOn (dist) describedAs "Publish to artifact repository"
def publishDistAction = task {
FileUtilities.copyFile(distDir / artifactsDistName, distOutputDir / artifactsDistName, log)
None
}
}