You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2022/12/20 07:26:19 UTC
[ignite-3] branch main updated: IGNITE-18280 Fix dependencies in Gradle packaging tasks (#1442)
This is an automated email from the ASF dual-hosted git repository.
ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new a7871ef9f4 IGNITE-18280 Fix dependencies in Gradle packaging tasks (#1442)
a7871ef9f4 is described below
commit a7871ef9f45cd704d77484c997a12f0f8c1e1841
Author: Vadim Pakhnushev <86...@users.noreply.github.com>
AuthorDate: Tue Dec 20 10:26:09 2022 +0300
IGNITE-18280 Fix dependencies in Gradle packaging tasks (#1442)
* Fix dependencies to get rid of Gradle warnings.
* Do not assembly release artifacts (such as .NET binaries) during regular build.
This fix properly declares dependencies between packaging tasks so that Gradle can optimize them correctly and don't complain.
Also this adds a property check for adding release artifacts. The reason is that adding an artifact to the configuration automatically adds a dependency to the `assemble` task so running `gradlew build` always produces artifacts intended only for the release.
---
RELEASE.md | 2 +-
modules/platforms/build.gradle | 15 ++++---
packaging/build.gradle | 63 +++++++++++++--------------
packaging/cli/build.gradle | 62 ++++++++++++--------------
packaging/db/build.gradle | 98 ++++++++++++++++++++++--------------------
5 files changed, 121 insertions(+), 119 deletions(-)
diff --git a/RELEASE.md b/RELEASE.md
index f19565cdcb..9a5a6c5b09 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -62,7 +62,7 @@ For all the commands going forward:
```
7. Create ZIP, DEB, RPM packages, .NET and C++ client, sign them and create checksums:
```
- ./gradlew prepareRelease
+ ./gradlew -PprepareRelease prepareRelease
```
8. Copy all packages along with checksums and signatures to the development distribution directory:
```
diff --git a/modules/platforms/build.gradle b/modules/platforms/build.gradle
index 0b770fe136..6149bc805f 100644
--- a/modules/platforms/build.gradle
+++ b/modules/platforms/build.gradle
@@ -73,11 +73,11 @@ task createChecksums(type: Checksum) {
dependsOn zipCppClient, zipNuGet
inputFiles.from zipCppClient.outputs.files, zipNuGet.outputs.files
- outputDirectory = file("$buildDir/distributions")
checksumAlgorithm = Checksum.Algorithm.SHA512
}
-signing {
+// Explicitly create task so that the resulting artifact is not added to the configuration
+tasks.register('signArtifacts', Sign) {
sign zipNuGet
sign zipCppClient
}
@@ -89,8 +89,13 @@ configurations {
}
}
-artifacts {
- platformsRelease(file("$buildDir/distributions")) {
- builtBy createChecksums, signZipNuGet, signZipCppClient
+if (project.hasProperty('prepareRelease')) {
+ artifacts {
+ platformsRelease(file("$buildDir/distributions")) {
+ builtBy signArtifacts
+ }
+ platformsRelease(file("$buildDir/checksums")) {
+ builtBy createChecksums
+ }
}
}
diff --git a/packaging/build.gradle b/packaging/build.gradle
index b04c64e175..b56678963d 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -31,19 +31,17 @@ configurations {
cliArtifacts
cliZip
dbZip
- cliRelease
- dbRelease
- platformsRelease
+ release
}
dependencies {
- dbArtifacts(project(':ignite-runner'))
- cliArtifacts(project(':ignite-cli'))
- cliZip(project(path: ':packaging-cli', configuration: 'cliZip'))
- dbZip(project(path: ':packaging-db', configuration: 'dbZip'))
- cliRelease(project(path: ':packaging-cli', configuration: 'cliRelease'))
- dbRelease(project(path: ':packaging-db', configuration: 'dbRelease'))
- platformsRelease(project(path: ':platforms', configuration: 'platformsRelease'))
+ dbArtifacts project(':ignite-runner')
+ cliArtifacts project(':ignite-cli')
+ cliZip project(path: ':packaging-cli', configuration: 'cliZip')
+ dbZip project(path: ':packaging-db', configuration: 'dbZip')
+ release project(path: ':packaging-cli', configuration: 'cliRelease')
+ release project(path: ':packaging-db', configuration: 'dbRelease')
+ release project(path: ':platforms', configuration: 'platformsRelease')
}
// Task that generates start script for cli
@@ -68,10 +66,10 @@ def tokens = [
]
task replaceVars(type: Copy) {
- from("$rootDir/packaging/common")
- from("$rootDir/packaging/docker/docker-entrypoint.sh")
+ from "$rootDir/packaging/common"
+ from "$rootDir/packaging/docker/docker-entrypoint.sh"
filter(ReplaceTokens, tokens: tokens)
- into("$buildDir/docker")
+ into "$buildDir/docker"
}
docker {
@@ -81,7 +79,7 @@ docker {
copySpec.into 'dist', {
into('') {
fileMode 0755
- from("$buildDir/docker/docker-entrypoint.sh")
+ from "$buildDir/docker/docker-entrypoint.sh"
}
into('db') {
into('') {
@@ -91,32 +89,32 @@ docker {
includeEmptyDirs = true
}
}
- from("$rootDir/LICENSE")
- from("$rootDir/NOTICE")
- from("$rootDir/assembly/README.md")
+ from "$rootDir/LICENSE"
+ from "$rootDir/NOTICE"
+ from "$rootDir/assembly/README.md"
}
into('etc') {
- from('config/ignite-config.conf')
- from('docker/ignite.java.util.logging.properties')
+ from 'config/ignite-config.conf'
+ from 'docker/ignite.java.util.logging.properties'
}
into('lib') {
- from(configurations.dbArtifacts)
- from("$buildDir/docker/$tokens.BOOTSTRAP_FILE_NAME")
- from("$buildDir/docker/$tokens.SETUP_JAVA_FILE_NAME")
+ from configurations.dbArtifacts
+ from "$buildDir/docker/$tokens.BOOTSTRAP_FILE_NAME"
+ from "$buildDir/docker/$tokens.SETUP_JAVA_FILE_NAME"
}
}
into('cli') {
into('') {
- from("$rootDir/LICENSE")
- from("$rootDir/NOTICE")
- from("$rootDir/assembly/README.md")
+ from "$rootDir/LICENSE"
+ from "$rootDir/NOTICE"
+ from "$rootDir/assembly/README.md"
}
into('bin') {
fileMode 0755
- from(cliStartScript)
+ from cliStartScript
}
into('lib') {
- from(configurations.cliArtifacts)
+ from configurations.cliArtifacts
}
}
}
@@ -150,7 +148,6 @@ task createChecksums(type: Checksum) {
dependsOn allDistZip, allSrcZip
inputFiles.from allDistZip.outputs.files, allSrcZip.outputs.files
- outputDirectory = file("$buildDir/distributions")
checksumAlgorithm = Checksum.Algorithm.SHA512
}
@@ -161,16 +158,16 @@ task signAllSrcZip(type: Sign) {
sign allSrcZip.outputs.files.singleFile
}
-signing {
+// Explicitly create task so that the resulting artifact is not added to the configuration
+tasks.register('signAllDistZip', Sign) {
sign allDistZip
}
-task prepareRelease(type: Copy) {
- from configurations.cliRelease
- from configurations.dbRelease
- from configurations.platformsRelease
+tasks.register('prepareRelease', Copy) {
+ from configurations.release
dependsOn createChecksums, signAllSrcZip, signAllDistZip
from file("$buildDir/distributions")
+ from file("$buildDir/checksums")
include '*.zip', '*.asc', '*.sha512'
include '*.rpm', '*.deb', '*.changes'
into file("$buildDir/release")
diff --git a/packaging/cli/build.gradle b/packaging/cli/build.gradle
index ed9fd8061c..e3d4c4c7bd 100644
--- a/packaging/cli/build.gradle
+++ b/packaging/cli/build.gradle
@@ -52,7 +52,6 @@ task createChecksums(type: Checksum) {
dependsOn distZip
inputFiles.from distZip.outputs.files
- outputDirectory = file("$buildDir/distributions")
checksumAlgorithm = Checksum.Algorithm.SHA512
}
@@ -64,12 +63,11 @@ def zipTokens = tokens + [
]
task replaceScriptVarsZip(type: Copy) {
- from("start.sh")
+ from 'start.sh'
filter(ReplaceTokens, tokens: zipTokens)
- fileMode 0755
- into("$buildDir/zip")
+ into "$buildDir/zip"
rename {
- "ignite3"
+ 'ignite3'
}
}
@@ -90,9 +88,6 @@ task windowsCliStartScript(type: Copy) {
into "$buildDir/windows"
}
-distTar.dependsOn replaceScriptVarsZip, windowsCliStartScript
-distZip.dependsOn replaceScriptVarsZip, windowsCliStartScript
-
distributions {
main {
distributionBaseName = 'ignite3-cli'
@@ -105,9 +100,9 @@ distributions {
into('bin') {
duplicatesStrategy= DuplicatesStrategy.EXCLUDE
from configurations.cliScripts
- from "$buildDir/zip/ignite3"
- from "$buildDir/windows"
- fileMode = 0755
+ from replaceScriptVarsZip
+ from windowsCliStartScript
+ fileMode 0755
}
into('lib') {
from configurations.cliArtifacts
@@ -129,7 +124,8 @@ artifacts {
cliZip(distZip)
}
-signing {
+// Explicitly create task so that the resulting artifact is not added to the configuration
+tasks.register('signCliZip', Sign) {
sign configurations.cliZip
}
@@ -141,26 +137,14 @@ def linuxTokens = tokens + [
]
task replaceScriptVarsLinux(type: Copy) {
- from("start.sh")
+ from 'start.sh'
+ from 'postInstall.sh'
filter(ReplaceTokens, tokens: linuxTokens)
- fileMode 0755
- into("$buildDir/linux")
- rename {
- "ignite3"
- }
+ into "$buildDir/linux"
}
-task replacePostInstallScriptVars(type: Copy) {
- from("postInstall.sh")
- filter(ReplaceTokens, tokens: linuxTokens)
- into("${buildDir}")
-}
-
-buildRpm.dependsOn replaceScriptVarsLinux, replacePostInstallScriptVars
-buildDeb.dependsOn replaceScriptVarsLinux, replacePostInstallScriptVars
-
-
buildDeb {
+ dependsOn replaceScriptVarsLinux
signingKeyId = project.findProperty("signing.keyId")
signingKeyPassphrase = project.findProperty("signing.password")
signingKeyRingFile = project.hasProperty("signing.secretKeyRingFile") ? file(project.property("signing.secretKeyRingFile")) : null
@@ -172,6 +156,8 @@ buildDeb {
}
buildRpm {
+ dependsOn replaceScriptVarsLinux
+
into("/etc/bash_completion.d/") {
from configurations.cliScripts
fileMode 0755
@@ -188,8 +174,11 @@ ospackage {
user 'root'
into(linuxTokens.INSTALL_DIR) {
- from("$buildDir/linux/ignite3")
- fileMode = 0755
+ from "$buildDir/linux/ignite3"
+ fileMode 0755
+ rename {
+ 'ignite3'
+ }
}
into(linuxTokens.LIB_DIR) {
@@ -197,7 +186,7 @@ ospackage {
from "$rootDir/packaging/common/setup-java.sh"
}
- postInstall file("${buildDir}/postInstall.sh")
+ postInstall file("$buildDir/linux/postInstall.sh")
}
configurations {
@@ -207,8 +196,13 @@ configurations {
}
}
-artifacts {
- cliRelease(file("$buildDir/distributions")) {
- builtBy createChecksums, signCliZip, buildDeb, buildRpm
+if (project.hasProperty('prepareRelease')) {
+ artifacts {
+ cliRelease(file("$buildDir/distributions")) {
+ builtBy signCliZip, buildDeb, buildRpm
+ }
+ cliRelease(file("$buildDir/checksums")) {
+ builtBy createChecksums
+ }
}
}
diff --git a/packaging/db/build.gradle b/packaging/db/build.gradle
index e342c9dd11..1b118354b2 100644
--- a/packaging/db/build.gradle
+++ b/packaging/db/build.gradle
@@ -56,13 +56,13 @@ def zipStartScriptTokens = tokens + [
]
task replaceZipScriptVars(type: Copy) {
- from("$rootDir/packaging/common")
- from("$rootDir/packaging/zip")
- from("$rootDir/packaging/db/ignite.java.util.logging.properties")
+ from "$rootDir/packaging/common"
+ from "$rootDir/packaging/zip"
+ from "$rootDir/packaging/db/ignite.java.util.logging.properties"
filter(ReplaceTokens, tokens: zipStartScriptTokens)
- into("$buildDir/zip/")
+ into "$buildDir/zip/"
}
distributions {
@@ -79,35 +79,35 @@ distributions {
}
}
into('') {
- from("$rootDir/LICENSE")
- from("$rootDir/NOTICE")
- from("$rootDir/assembly/README.md")
+ from "$rootDir/LICENSE"
+ from "$rootDir/NOTICE"
+ from "$rootDir/assembly/README.md"
}
into('etc') {
- from("$buildDir/zip/${zipStartScriptTokens.VARS_FILE_NAME}")
- from("$rootDir/packaging/config/ignite-config.conf")
- from("$buildDir/zip/ignite.java.util.logging.properties")
+ from "$buildDir/zip/${zipStartScriptTokens.VARS_FILE_NAME}"
+ from "$rootDir/packaging/config/ignite-config.conf"
+ from "$buildDir/zip/ignite.java.util.logging.properties"
}
into('bin') {
fileMode 0755
- from("$buildDir/zip/ignite3db")
+ from "$buildDir/zip/ignite3db"
}
into('lib') {
from configurations.dbArtifacts
- from("$buildDir/zip/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}")
- from("$buildDir/zip/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}")
+ from "$buildDir/zip/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}"
+ from "$buildDir/zip/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}"
}
}
}
}
distZip.dependsOn replaceZipScriptVars
+distTar.dependsOn replaceZipScriptVars
task createChecksums(type: Checksum) {
dependsOn distZip
inputFiles.from distZip.outputs.files
- outputDirectory = file("$buildDir/distributions")
checksumAlgorithm = Checksum.Algorithm.SHA512
}
@@ -123,7 +123,8 @@ artifacts {
dbZip(distZip)
}
-signing {
+// Explicitly create task so that the resulting artifact is not added to the configuration
+tasks.register('signDbZip', Sign) {
sign configurations.dbZip
}
@@ -144,23 +145,23 @@ def packageTokens = tokens + [
task replacePackageScriptVars(type: Copy) {
- from("${rootDir}/packaging/linux")
- from("${rootDir}/packaging/db/ignite.java.util.logging.properties")
- from("$rootDir/packaging/common")
+ from "$rootDir/packaging/linux"
+ from "$rootDir/packaging/db/ignite.java.util.logging.properties"
+ from "$rootDir/packaging/common"
filter(ReplaceTokens, tokens: packageTokens)
- into("${buildDir}/linux")
+ into "$buildDir/linux"
}
buildRpm {
dependsOn replacePackageScriptVars
configurationFile = "/etc/ignite3/vars.env"
- installUtils file("${buildDir}/linux/service/vars.env")
- installUtils file("${buildDir}/linux/common.sh")
- preInstall file("${buildDir}/linux/preInstall.sh")
- postInstall file("${buildDir}/linux/postInstall.sh")
- preUninstall file("${buildDir}/linux/rpm/preUninstall.sh")
- postUninstall file("${buildDir}/linux/rpm/postUninstall.sh")
+ installUtils file("$buildDir/linux/service/vars.env")
+ installUtils file("$buildDir/linux/common.sh")
+ preInstall file("$buildDir/linux/preInstall.sh")
+ postInstall file("$buildDir/linux/postInstall.sh")
+ preUninstall file("$buildDir/linux/rpm/preUninstall.sh")
+ postUninstall file("$buildDir/linux/rpm/postUninstall.sh")
}
buildDeb {
@@ -170,12 +171,12 @@ buildDeb {
dependsOn replacePackageScriptVars
configurationFile = "/etc/ignite3/vars.env"
- installUtils file("${buildDir}/linux/service/vars.env")
- installUtils file("${buildDir}/linux/common.sh")
- preInstall file("${buildDir}/linux/preInstall.sh")
- postInstall file("${buildDir}/linux/postInstall.sh")
- preUninstall file("${buildDir}/linux/deb/preUninstall.sh")
- postUninstall file("${buildDir}/linux/deb/postUninstall.sh")
+ installUtils file("$buildDir/linux/service/vars.env")
+ installUtils file("$buildDir/linux/common.sh")
+ preInstall file("$buildDir/linux/preInstall.sh")
+ postInstall file("$buildDir/linux/postInstall.sh")
+ preUninstall file("$buildDir/linux/deb/preUninstall.sh")
+ postUninstall file("$buildDir/linux/deb/postUninstall.sh")
}
ospackage {
@@ -188,28 +189,28 @@ ospackage {
os LINUX
into(packageTokens.INSTALL_DIR) {
- into("") {
- from "${buildDir}/linux/service/ignite3db.service"
- from "${buildDir}/linux/service/ignite3db.conf"
- from("${buildDir}/linux/start.sh") {
+ into('') {
+ from "$buildDir/linux/service/ignite3db.service"
+ from "$buildDir/linux/service/ignite3db.conf"
+ from("$buildDir/linux/start.sh") {
fileMode 0755
}
}
- into("lib") {
+ into('lib') {
from configurations.dbArtifacts
- from("$buildDir/linux/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}")
- from("$buildDir/linux/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}")
+ from "$buildDir/linux/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}"
+ from "$buildDir/linux/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}"
}
- into("etc") {
+ into('etc') {
fileType CONFIG
- from "${buildDir}/linux/service/vars.env"
- from "${buildDir}/linux/ignite.java.util.logging.properties"
- from "${rootDir}/packaging/config/ignite-config.conf"
+ from "$buildDir/linux/service/vars.env"
+ from "$buildDir/linux/ignite.java.util.logging.properties"
+ from "$rootDir/packaging/config/ignite-config.conf"
}
- into("etc") {
+ into('etc') {
from sourceSets.main.resources
}
}
@@ -224,8 +225,13 @@ configurations {
}
}
-artifacts {
- dbRelease(file("$buildDir/distributions")) {
- builtBy createChecksums, signDbZip, buildDeb, buildRpm
+if (project.hasProperty('prepareRelease')) {
+ artifacts {
+ dbRelease(file("$buildDir/distributions")) {
+ builtBy signDbZip, buildDeb, buildRpm
+ }
+ dbRelease(file("$buildDir/checksums")) {
+ builtBy createChecksums
+ }
}
}