This is an automated email from the ASF dual-hosted git repository.
mpochatkin 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 d9d9d4a515 IGNITE-19383 Add git last commit hash to version (#3925)
d9d9d4a515 is described below
commit d9d9d4a5153b0105d922144e3cbc19c52d1ed35f
Author: Mikhail <[email protected]>
AuthorDate: Mon Jun 24 16:47:12 2024 +0300
IGNITE-19383 Add git last commit hash to version (#3925)
---
buildscripts/generate-version-file.gradle | 42 ++++++++++++++++++++++
modules/runner/build.gradle | 1 +
.../apache/ignite/internal/app/IgnitionImpl.java | 17 +++++++--
packaging/db/build.gradle | 7 ++--
4 files changed, 63 insertions(+), 4 deletions(-)
diff --git a/buildscripts/generate-version-file.gradle
b/buildscripts/generate-version-file.gradle
new file mode 100644
index 0000000000..19209b9e02
--- /dev/null
+++ b/buildscripts/generate-version-file.gradle
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+def createVersionFile = tasks.register('createVersionFile') {
+ onlyIf {
+ project.hasProperty("lastCommitHash")
+ }
+
+ def versionFileName = "ignite.version.full"
+ def versionFile = file("$buildDir/$versionFileName")
+
+ if (versionFile.exists()) {
+ versionFile.delete()
+ }
+
+ doLast {
+ def versionProp = project.property("lastCommitHash")
+
+ versionFile << project.version + "-sha1:" + versionProp
+ }
+
+ outputs.file versionFile
+}
+
+// make processResources depends on createExtraFilesIndex task
+processResources {
+ from createVersionFile
+}
diff --git a/modules/runner/build.gradle b/modules/runner/build.gradle
index 454e2a49a5..407f847df4 100644
--- a/modules/runner/build.gradle
+++ b/modules/runner/build.gradle
@@ -20,6 +20,7 @@ apply from: "$rootDir/buildscripts/publishing.gradle"
apply from: "$rootDir/buildscripts/java-junit5.gradle"
apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
apply from: "$rootDir/buildscripts/java-integration-test.gradle"
+apply from: "$rootDir/buildscripts/generate-version-file.gradle"
description = 'ignite-runner'
diff --git
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgnitionImpl.java
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgnitionImpl.java
index 5ba9a99409..bd00bd207c 100644
---
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgnitionImpl.java
+++
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgnitionImpl.java
@@ -20,6 +20,9 @@ package org.apache.ignite.internal.app;
import static java.lang.System.lineSeparator;
import com.google.auto.service.AutoService;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
@@ -236,8 +239,18 @@ public class IgnitionImpl implements Ignition {
String padding = " ".repeat(22);
- String version = "Apache Ignite ver. " +
IgniteProductVersion.CURRENT_VERSION;
+ String version;
- LOG.info("{}" + lineSeparator() + "{}{}" + lineSeparator(), banner,
padding, version);
+ try (InputStream versionStream =
IgnitionImpl.class.getClassLoader().getResourceAsStream("ignite.version.full"))
{
+ if (versionStream != null) {
+ version = new String(versionStream.readAllBytes(),
StandardCharsets.UTF_8);
+ } else {
+ version = IgniteProductVersion.CURRENT_VERSION.toString();
+ }
+ } catch (IOException e) {
+ version = IgniteProductVersion.CURRENT_VERSION.toString();
+ }
+
+ LOG.info("{}" + lineSeparator() + "{}{}" + lineSeparator(), banner,
padding, "Apache Ignite ver. " + version);
}
}
diff --git a/packaging/db/build.gradle b/packaging/db/build.gradle
index ccb30a04dd..682f4bd05b 100644
--- a/packaging/db/build.gradle
+++ b/packaging/db/build.gradle
@@ -24,6 +24,8 @@ plugins {
alias(libs.plugins.setupbuilder)
}
+apply from: "$rootDir/buildscripts/generate-version-file.gradle"
+
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
@@ -163,6 +165,7 @@ distributions {
from "$buildDir/zip/${zipStartScriptTokensWin.VARS_FILE_NAME}"
from generateConfigDefaults
from "$buildDir/zip/ignite.java.util.logging.properties"
+ from createVersionFile
}
into('bin') {
fileMode 0755
@@ -280,6 +283,7 @@ ospackage {
from "$buildDir/linux/service/vars.env"
from "$buildDir/linux/ignite.java.util.logging.properties"
from generateConfigDefaults
+ from createVersionFile
}
into('etc') {
@@ -290,8 +294,6 @@ ospackage {
link "/opt/ignite3db", "${packageTokens.INSTALL_DIR}"
}
-
-
if (project.hasProperty('prepareRelease')) {
artifacts {
dbRelease(file("$buildDir/distributions")) {
@@ -348,6 +350,7 @@ setupBuilder {
}
into('etc') {
from generateConfigDefaults
+ from createVersionFile
}
into('etc') {
from("ignite.java.util.logging.properties")