thingsboard/packaging/build.gradle

199 lines
5.1 KiB
Groovy
Raw Normal View History

2016-12-01 11:38:15 +02:00
/**
2020-01-06 16:52:41 +02:00
* Copyright © 2016-2020 The Thingsboard Authors
2016-12-01 11:38:15 +02:00
*
* 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.
*/
import org.apache.tools.ant.filters.ReplaceTokens
2016-12-01 11:38:15 +02:00
buildscript {
ext {
2020-05-21 11:51:51 +03:00
osPackageVersion = "8.3.0"
2016-12-01 11:38:15 +02:00
}
repositories {
jcenter()
}
dependencies {
classpath("com.netflix.nebula:gradle-ospackage-plugin:${osPackageVersion}")
}
}
apply plugin: "nebula.ospackage"
buildDir = projectBuildDir
version = projectVersion
distsDirName = "./"
// OS Package plugin configuration
ospackage {
packageName = pkgName
version = "${project.version}"
release = 1
os = LINUX
type = BINARY
into pkgInstallFolder
2020-05-21 11:51:51 +03:00
user pkgUser
permissionGroup pkgUser
2016-12-01 11:38:15 +02:00
// Copy the actual .jar file
from(mainJar) {
// Strip the version from the jar filename
rename { String fileName ->
"${pkgName}.jar"
2016-12-01 11:38:15 +02:00
}
fileMode 0500
into "bin"
}
2017-07-04 13:44:57 +03:00
// Copy the install files
2020-05-21 11:51:51 +03:00
from("${buildDir}/bin/install/install.sh") {
2017-07-04 13:44:57 +03:00
fileMode 0775
into "bin/install"
}
2020-05-21 11:51:51 +03:00
from("${buildDir}/bin/install/upgrade.sh") {
2017-07-04 13:44:57 +03:00
fileMode 0775
into "bin/install"
}
2020-05-21 11:51:51 +03:00
from("${buildDir}/bin/install/logback.xml") {
2017-07-04 13:44:57 +03:00
into "bin/install"
}
2016-12-01 11:38:15 +02:00
// Copy the config files
2020-05-21 11:51:51 +03:00
from("${buildDir}/conf") {
exclude "${pkgName}.conf"
2016-12-01 11:38:15 +02:00
fileType CONFIG | NOREPLACE
fileMode 0754
into "conf"
}
// Copy the data files
2020-05-21 11:51:51 +03:00
from("${buildDir}/data") {
2016-12-01 11:38:15 +02:00
fileType CONFIG | NOREPLACE
fileMode 0754
into "data"
}
// Copy the extensions files
2020-05-21 11:51:51 +03:00
from("${buildDir}/extensions") {
2016-12-01 11:38:15 +02:00
into "extensions"
}
}
// Configure our RPM build task
buildRpm {
arch = NOARCH
2020-05-21 11:51:51 +03:00
archiveVersion = projectVersion.replace('-', '')
archiveFileName = "${pkgName}.rpm"
2016-12-01 11:38:15 +02:00
requires("java-1.8.0")
2020-05-21 11:51:51 +03:00
from("${buildDir}/conf") {
include "${pkgName}.conf"
filter(ReplaceTokens, tokens: ['pkg.platform': 'rpm'])
fileType CONFIG | NOREPLACE
fileMode 0754
into "${pkgInstallFolder}/conf"
}
2016-12-01 11:38:15 +02:00
preInstall file("${buildDir}/control/rpm/preinst")
postInstall file("${buildDir}/control/rpm/postinst")
preUninstall file("${buildDir}/control/rpm/prerm")
postUninstall file("${buildDir}/control/rpm/postrm")
2020-05-21 11:51:51 +03:00
user pkgUser
permissionGroup pkgUser
2016-12-01 11:38:15 +02:00
// Copy the system unit files
2020-05-21 11:51:51 +03:00
from("${buildDir}/control/template.service") {
2016-12-01 11:38:15 +02:00
addParentDirs = false
fileMode 0644
into "/usr/lib/systemd/system"
2020-05-21 11:51:51 +03:00
rename { String filename ->
"${pkgName}.service"
}
2016-12-01 11:38:15 +02:00
}
link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
}
// Same as the buildRpm task
buildDeb {
arch = "all"
2020-05-21 11:51:51 +03:00
archiveFileName = "${pkgName}.deb"
2016-12-01 11:38:15 +02:00
2016-12-01 13:04:59 +02:00
requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
2016-12-01 11:38:15 +02:00
2020-05-21 11:51:51 +03:00
from("${buildDir}/conf") {
include "${pkgName}.conf"
filter(ReplaceTokens, tokens: ['pkg.platform': 'deb'])
fileType CONFIG | NOREPLACE
fileMode 0754
into "${pkgInstallFolder}/conf"
}
2016-12-01 11:38:15 +02:00
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
configurationFile("${pkgInstallFolder}/conf/logback.xml")
configurationFile("${pkgInstallFolder}/conf/actor-system.conf")
preInstall file("${buildDir}/control/deb/preinst")
postInstall file("${buildDir}/control/deb/postinst")
preUninstall file("${buildDir}/control/deb/prerm")
postUninstall file("${buildDir}/control/deb/postrm")
2020-05-21 11:51:51 +03:00
user pkgUser
permissionGroup pkgUser
2016-12-01 11:38:15 +02:00
2019-06-20 13:31:38 +03:00
// Copy the system unit files
2020-05-21 11:51:51 +03:00
from("${buildDir}/control/template.service") {
2019-06-20 13:31:38 +03:00
addParentDirs = false
fileMode 0644
into "/lib/systemd/system"
2020-05-21 11:51:51 +03:00
rename { String filename ->
"${pkgName}.service"
}
2019-06-20 13:31:38 +03:00
}
2016-12-01 11:38:15 +02:00
link("/etc/init.d/${pkgName}", "${pkgInstallFolder}/bin/${pkgName}.jar")
link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
}
2020-05-21 11:51:51 +03:00
task renameDeb(type: Copy) {
from("${buildDir}/") {
include '*.deb'
destinationDir file("${buildDir}/")
rename { String filename ->
"${pkgName}.deb"
}
}
}
task renameRpm(type: Copy) {
from("${buildDir}/") {
include '*.rpm'
destinationDir file("${buildDir}/")
rename { String filename ->
"${pkgName}.rpm"
}
}
}