thingsboard/packaging/js/build.gradle
2021-12-14 10:17:55 +02:00

182 lines
4.6 KiB
Groovy

/**
* Copyright © 2016-2021 The Thingsboard Authors
*
* 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
plugins {
id "nebula.ospackage" version "8.6.3"
}
buildDir = projectBuildDir
version = projectVersion
distsDirName = "./"
// OS Package plugin configuration
ospackage {
packageName = pkgName
version = "${project.version}"
release = 1
os = LINUX
type = BINARY
into pkgInstallFolder
user pkgUser
permissionGroup pkgUser
// Copy the init file
from("${buildDir}/package/linux/init/template") {
fileMode 0500
into "init"
rename { String filename ->
"${pkgName}"
}
}
// Copy the config files
from("${buildDir}/package/linux/conf") {
fileType CONFIG | NOREPLACE
fileMode 0754
into "conf"
}
// Copy web files
from("${buildDir}/web") {
into "web"
}
}
// Configure our RPM build task
buildRpm {
arch = X86_64
archiveVersion = projectVersion.replace('-', '')
archiveFileName = "${pkgName}.rpm"
preInstall file("${buildDir}/control/rpm/preinst")
postInstall file("${buildDir}/control/rpm/postinst")
preUninstall file("${buildDir}/control/rpm/prerm")
postUninstall file("${buildDir}/control/rpm/postrm")
into pkgInstallFolder
user pkgUser
permissionGroup pkgUser
// Copy the executable file
from("${buildDir}/package/linux/bin/${pkgName}") {
fileMode 0500
into "bin"
}
// Copy the system unit files
from("${buildDir}/control/template.service") {
addParentDirs = false
fileMode 0644
into "/usr/lib/systemd/system"
rename { String filename ->
"${pkgName}.service"
}
}
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
}
// Same as the buildRpm task
buildDeb {
arch = "amd64"
archiveFileName = "${pkgName}.deb"
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
configurationFile("${pkgInstallFolder}/conf/custom-environment-variables.yml")
configurationFile("${pkgInstallFolder}/conf/default.yml")
configurationFile("${pkgInstallFolder}/conf/logger.js")
preInstall file("${buildDir}/control/deb/preinst")
postInstall file("${buildDir}/control/deb/postinst")
preUninstall file("${buildDir}/control/deb/prerm")
postUninstall file("${buildDir}/control/deb/postrm")
into pkgInstallFolder
user pkgUser
permissionGroup pkgUser
// Copy the executable file
from("${buildDir}/package/linux/bin/${pkgName}") {
fileMode 0500
into "bin"
}
// Copy the system unit files
from("${buildDir}/control/template.service") {
addParentDirs = false
fileMode 0644
into "/lib/systemd/system"
rename { String filename ->
"${pkgName}.service"
}
}
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
}
// Same as the buildRpm task
task buildDebArm64(type: Deb) {
arch = "arm64"
archiveFileName = "${pkgName}-arm64.deb"
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
configurationFile("${pkgInstallFolder}/conf/custom-environment-variables.yml")
configurationFile("${pkgInstallFolder}/conf/default.yml")
configurationFile("${pkgInstallFolder}/conf/logger.js")
preInstall file("${buildDir}/control/deb/preinst")
postInstall file("${buildDir}/control/deb/postinst")
preUninstall file("${buildDir}/control/deb/prerm")
postUninstall file("${buildDir}/control/deb/postrm")
into pkgInstallFolder
user pkgUser
permissionGroup pkgUser
// Copy the executable file
from("${buildDir}/package/linux/bin-arm64/${pkgName}") {
fileMode 0500
into "bin"
}
// Copy the system unit files
from("${buildDir}/control/template.service") {
addParentDirs = false
fileMode 0644
into "/lib/systemd/system"
rename { String filename ->
"${pkgName}.service"
}
}
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
}
buildDeb.finalizedBy buildDebArm64