/* * MIT License * * Copyright (c) 2020-present Cloudogu GmbH and Contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import org.gradle.util.VersionNumber plugins { id 'org.scm-manager.packaging' id 'signing' id 'maven-publish' id 'org.scm-manager.license' } configurations { server webapp jsvc unixPkg packageYaml { canBeConsumed = true } } dependencies { server project(':scm-server') webapp project(path: ':scm-webapp', configuration: 'webapp') jsvc libraries.jsvc } task unix(type: Tar) { VersionNumber version = VersionNumber.parse(project.version) archiveFileName = "unix-${project.version}.tar.gz" into('scm-server') { into('conf') { from 'src/main/fs/conf' include 'config.yml' expand([version: version]) } from('src/main/fs') { exclude('**/config.yml') } into('bin') { from('src/main/bin') { fileMode 0755 } } into('lib') { from project.configurations.server } into('var/webapp') { from project.configurations.webapp rename { 'scm-webapp.war' } } } project.configurations.jsvc.each { archive -> into('.') { from tarTree(archive) include '**/jsvc*' eachFile { fcd -> fcd.relativePath = new RelativePath(true, "scm-server/libexec/${fcd.name}") } includeEmptyDirs = false } } destinationDir file('build/libs') compression = Compression.GZIP } task distribution(type: PackageYaml) { type = 'unix' artifact = file("build/libs/unix-${project.version}.tar.gz") dependsOn unix } artifacts { unixPkg unix packageYaml(file('build/libs/package.yml')) { builtBy distribution } } signing { sign publishing.publications } publishing { publications { mavenJava(MavenPublication) { groupId "sonia.scm.packaging" artifactId project.name version project.version artifact(unix) { extension 'tar.gz' } } } } project.rootProject.publishing.repositories.each { r -> project.publishing.repositories.add(r) } license { header rootProject.file("LICENSE.txt") lineEnding = "\n" tasks { build { files.from("build.gradle", "Dockerfile") } main { files.from("src") } } }