From d6c6d923b7bbd4aff768b1878be3c5b49430f5fc Mon Sep 17 00:00:00 2001 From: Qi Yu Date: Tue, 24 Oct 2023 23:08:03 +0800 Subject: [PATCH] [#542] feat(trino-connector): package gravitino trino-connector (#578) ### What changes were proposed in this pull request? - Package `trino-connetor` as `gravition-trinno-connector-{version}.tar.gz` and put it under `distribution` directory - Add docs about `trino-connector` accordingly. ### Why are the changes needed? We need to package `trino-connector` when releasing `Gravitino` Fix: #542 ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? No --- build.gradle.kts | 34 +++++++++++++++++++++++++++++--- docs/how-to-build.md | 20 ++++++++++++++++--- trino-connector/build.gradle.kts | 6 ++++++ 3 files changed, 54 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5b994d5358..769d5eab68 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -195,18 +195,30 @@ tasks { } val assembleDistribution by registering(Tar::class) { + dependsOn("assembleTrinoConnector") group = "gravitino distribution" finalizedBy("checksumDistribution") - into("${rootProject.name}-${version}") + into("${rootProject.name}-${version}-bin") from(compileDistribution.map { it.outputs.files.single() }) compression = Compression.GZIP - archiveFileName.set("${rootProject.name}-${version}.tar.gz") + archiveFileName.set("${rootProject.name}-${version}-bin.tar.gz") + destinationDirectory.set(projectDir.dir("distribution")) + } + + val assembleTrinoConnector by registering(Tar::class) { + dependsOn("trino-connector:copyLibs") + group = "gravitino distribution" + finalizedBy("checksumTrinoConnector") + into("${rootProject.name}-trino-connector-${version}") + from("trino-connector/build/libs") + compression = Compression.GZIP + archiveFileName.set("${rootProject.name}-trino-connector-${version}.tar.gz") destinationDirectory.set(projectDir.dir("distribution")) } register("checksumDistribution") { group = "gravitino distribution" - dependsOn(assembleDistribution) + dependsOn(assembleDistribution, "checksumTrinoConnector") val archiveFile = assembleDistribution.flatMap { it.archiveFile } val checksumFile = archiveFile.map { archive -> archive.asFile.let { it.resolveSibling("${it.name}.sha256") } @@ -220,6 +232,22 @@ tasks { } } + register("checksumTrinoConnector") { + group = "gravitino distribution" + dependsOn(assembleTrinoConnector) + val archiveFile = assembleTrinoConnector.flatMap { it.archiveFile } + val checksumFile = archiveFile.map { archive -> + archive.asFile.let { it.resolveSibling("${it.name}.sha256") } + } + inputs.file(archiveFile) + outputs.file(checksumFile) + doLast { + checksumFile.get().writeText( + serviceOf().sha256(archiveFile.get().asFile).toString() + ) + } + } + val cleanDistribution by registering(Delete::class) { group = "gravitino distribution" delete(outputDir) diff --git a/docs/how-to-build.md b/docs/how-to-build.md index d84d808971..15331e37ad 100644 --- a/docs/how-to-build.md +++ b/docs/how-to-build.md @@ -68,6 +68,20 @@ This software is licensed under the Apache License version 2." ```shell ./gradlew assembleDistribution ``` - The `assembleDistribution` command will create `gravitino-{version}-bin.tar` and `gravitino-{version}-bin.tar.sha256` files in the `distribution/package` directory. - You can deploy the `gravitino-{version}-bin.tar` file to your production environment. - > Note: The `gravitino-{version}-bin.tar` file is the Gravitino Server distribution package, and the `gravitino-{version}-bin.tar.sha256` file is the sha256 checksum file for the Gravitino Server distribution package. \ No newline at end of file + The `assembleDistribution` command will create `gravitino-{version}-bin.tar.gz` and `gravitino-{version}-bin.tar.gz.sha256` under the `distribution` directory. + + You can deploy them to your production environment. + + > Note: The `gravitino-{version}-bin.tar.gz` file is the Gravitino Server distribution package, and the `gravitino-{version}-bin.tar.gz.sha256` file is the sha256 checksum file for the Gravitino Server distribution package. + +7. Assemble Gravitino trino connector package + + ```shell + ./gradlew assembleTrinoConnector + ``` + or + ```shell + ./gradlew assembleDistribution + ``` + + It will create `gravitino-trino-connector-{version}.tar.gz` and `gravitino-trino-connector-{version}.tar.gz.sha256` under the `distribution` directory. \ No newline at end of file diff --git a/trino-connector/build.gradle.kts b/trino-connector/build.gradle.kts index 7a79d0032c..da1fbdb148 100644 --- a/trino-connector/build.gradle.kts +++ b/trino-connector/build.gradle.kts @@ -50,4 +50,10 @@ tasks { jar { finalizedBy(copyDepends) } + + val copyLibs by registering(Copy::class) { + dependsOn(copyDepends, "build") + from("build/libs") + into("${rootDir}/distribution/${rootProject.name}-trino-connector") + } }