blob: 16460bddadc1cd3801bd4629fff5d954c4fb51b3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
plugins {
id 'distribution'
id 'signing'
id 'java'
alias(libs.plugins.nebula)
alias(libs.plugins.checksum)
}
apply from: "$rootDir/buildscripts/utils.gradle"
import org.gradle.crypto.checksum.Checksum
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
configurations {
javaClient
}
def igniteJavaClient = project(':ignite-client')
dependencies {
javaClient(igniteJavaClient)
}
def createChecksums = tasks.register('createChecksums', Checksum) {
inputFiles.from distZip
checksumAlgorithm = Checksum.Algorithm.SHA512
}
def tokens = [
PRODUCT_NAME : 'ignite3-java-client',
LIB_JAR : "${igniteJavaClient.name}-${igniteJavaClient.version}.jar".toString(),
]
// ZIP packaging
distributions {
main {
distributionBaseName = tokens.PRODUCT_NAME
contents {
into('') {
from "$rootDir/LICENSE"
from "$rootDir/NOTICE"
}
into('lib') {
from configurations.javaClient
}
}
}
}
// --- ZIP packaging --- //
configurations {
javaClientZip {
canBeConsumed = true
canBeResolved = false
}
}
artifacts {
javaClientZip(distZip)
}
// Explicitly create task so that the resulting artifact is not added to the configuration
def signJavaClientZip = tasks.register('signJavaClientZip', Sign) {
sign configurations.javaClientZip
}
// --- DEB/RPM packaging --- //
def linuxTokens = tokens + [
LIB_DIR : '/usr/lib/ignite3-java-client'
]
ospackage {
license "ASL 2.0"
packageName linuxTokens.PRODUCT_NAME
packageGroup "Development/Libraries"
url "https://ignite.apache.org"
packageDescription "This package will install Apache Ignite Java Client"
os LINUX
user 'root'
release getCommitNum()
into(linuxTokens.LIB_DIR) {
from configurations.javaClient
}
}
buildDeb {
signingKeyId = project.findProperty("signing.keyId")
signingKeyPassphrase = project.findProperty("signing.password")
signingKeyRingFile = project.hasProperty("signing.secretKeyRingFile") ? file(project.property("signing.secretKeyRingFile")) : null
}
// --- release setup --- //
configurations {
javaClientRelease {
canBeConsumed = true
canBeResolved = false
}
}
if (project.hasProperty('prepareRelease')) {
artifacts {
javaClientRelease(file("$buildDir/distributions")) {
builtBy signJavaClientZip, buildDeb, buildRpm
}
javaClientRelease(file("$buildDir/checksums")) {
builtBy createChecksums
}
}
}