This is an automated email from the ASF dual-hosted git repository.
nihaljain pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-thirdparty.git
The following commit(s) were added to refs/heads/master by this push:
new 06062de HBASE-29465 [hbase-thirdparty] Update yetus to a newer
version(#144)
06062de is described below
commit 06062dec5b70d0c46740215017160bd8d2ef019e
Author: Nihal Jain <[email protected]>
AuthorDate: Mon Jul 28 10:13:58 2025 +0530
HBASE-29465 [hbase-thirdparty] Update yetus to a newer version(#144)
- Upgrades yetus to `0.15.0`, making required changes in sync with hbase
main repo
- Improves error handling and logging of wrapper maven script
- Unrelated changes: Fix typos and git urls
Signed-off-by: Duo Zhang <[email protected]>
---
dev-support/jenkins/Dockerfile | 54 ++++++++++++++++++++--
dev-support/jenkins/Jenkinsfile | 26 ++++++++---
.../jenkins/jenkins_precommit_github_yetus.sh | 8 ++--
hbase-shaded-jetty-12-plus-core/pom.xml | 2 +-
hbase-shaded-jetty-12-plus-ee8/pom.xml | 2 +-
hbase-shaded-jetty/pom.xml | 2 +-
pom.xml | 13 ++----
7 files changed, 80 insertions(+), 27 deletions(-)
diff --git a/dev-support/jenkins/Dockerfile b/dev-support/jenkins/Dockerfile
index 5ebc37d..5f76407 100644
--- a/dev-support/jenkins/Dockerfile
+++ b/dev-support/jenkins/Dockerfile
@@ -36,6 +36,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -qq update && \
wget='1.21.2-*' \
shellcheck='0.8.0-*' \
patch='2.7.6-*' \
+ libxml2-dev='2.9.13+dfsg-*' \
+ libxml2-utils='2.9.13+dfsg-*' \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/* \
@@ -110,14 +112,56 @@ ENV MAVEN_HOME='/opt/maven'
RUN mv /opt/maven/bin/mvn /opt/maven/bin/mvn-original && \
cat > /opt/maven/bin/mvn <<'EOF'
#!/bin/bash
-TOOLCHAIN="${BASEDIR}/dev-support/toolchains-jenkins.xml"
-if [ -f "$TOOLCHAIN" ]; then
+
+echo "Maven wrapper called with args: $@"
+echo "Current working directory: $(pwd)"
+echo "BASEDIR environment variable: ${BASEDIR:-'(not set)'}"
+echo "MAVEN_HOME: ${MAVEN_HOME:-'(not set)'}"
+
+# Ensure Maven home exists
+if [ ! -d "${MAVEN_HOME}" ]; then
+ echo "ERROR: MAVEN_HOME directory does not exist: ${MAVEN_HOME}"
+ exit 1
+fi
+
+if [ ! -f "${MAVEN_HOME}/bin/mvn-original" ]; then
+ echo "ERROR: mvn-original not found at: ${MAVEN_HOME}/bin/mvn-original"
+ exit 1
+fi
+
+# Try multiple possible locations for the toolchains file
+TOOLCHAIN_LOCATIONS=(
+ "${BASEDIR}/dev-support/toolchains-jenkins.xml"
+ "$(pwd)/dev-support/toolchains-jenkins.xml"
+ "./dev-support/toolchains-jenkins.xml"
+ "../dev-support/toolchains-jenkins.xml"
+)
+
+TOOLCHAIN=""
+for location in "${TOOLCHAIN_LOCATIONS[@]}"; do
+ echo "Checking for toolchains file at: $location"
+ if [ -f "$location" ]; then
+ TOOLCHAIN="$location"
+ echo "Found toolchains file at: $TOOLCHAIN"
+ break
+ fi
+done
+
+if [ -n "$TOOLCHAIN" ]; then
echo "Added: -t ${TOOLCHAIN} to mvn flags!"
- exec ${MAVEN_HOME}/bin/mvn-original "$@" -t "$TOOLCHAIN"
+ echo "Executing: ${MAVEN_HOME}/bin/mvn-original $@ -t $TOOLCHAIN"
+ "${MAVEN_HOME}/bin/mvn-original" "$@" -t "$TOOLCHAIN"
+ exit_code=$?
else
- echo "Unexpected: ${TOOLCHAIN} file is missing!"
- exec ${MAVEN_HOME}/bin/mvn-original "$@"
+ echo "Error: toolchains-jenkins.xml file not found in any expected location,
please fix the build environment!"
+ echo "Proceeding without toolchains configuration..."
+ echo "Executing: ${MAVEN_HOME}/bin/mvn-original $@"
+ "${MAVEN_HOME}/bin/mvn-original" "$@"
+ exit_code=$?
fi
+
+echo "Maven execution completed with exit code: $exit_code"
+exit $exit_code
EOF
RUN chmod +x /opt/maven/bin/mvn && cat /opt/maven/bin/mvn
diff --git a/dev-support/jenkins/Jenkinsfile b/dev-support/jenkins/Jenkinsfile
index e6d9b97..0de41d9 100644
--- a/dev-support/jenkins/Jenkinsfile
+++ b/dev-support/jenkins/Jenkinsfile
@@ -49,7 +49,7 @@ pipeline {
PATCH_REL = 'output'
YETUS_REL = 'yetus'
// Branch or tag name. Yetus release tags are 'rel/X.Y.Z'
- YETUS_VERSION = 'rel/0.12.0'
+ YETUS_VERSION = '0.15.0'
DOCKERFILE_REL = "${SRC_REL}/dev-support/jenkins/Dockerfile"
YETUS_DRIVER_REL =
"${SRC_REL}/dev-support/jenkins/jenkins_precommit_github_yetus.sh"
ARCHIVE_PATTERN_LIST = '*.dump'
@@ -71,6 +71,7 @@ pipeline {
SOURCEDIR = "${WORKDIR}/${SRC_REL}"
PATCHDIR = "${WORKDIR}/${PATCH_REL}"
DOCKERFILE = "${WORKDIR}/${DOCKERFILE_REL}"
+ CACHE_APACHE_ARTIFACT =
"${WORKDIR}/tools/cache-apache-project-artifact.sh"
YETUS_DRIVER = "${WORKDIR}/${YETUS_DRIVER_REL}"
YETUSDIR = "${WORKDIR}/${YETUS_REL}"
BUILD_URL_ARTIFACTS = "artifact/${WORKDIR_REL}/${PATCH_REL}"
@@ -79,12 +80,25 @@ pipeline {
dir("${SOURCEDIR}") {
checkout scm
}
+ dir("${WORKDIR}") {
+ sh'''#!/usr/bin/env bash
+ set -e
+ mkdir -p tools
+ curl -L -O
https://raw.githubusercontent.com/apache/hbase/HEAD/dev-support/jenkins-scripts/cache-apache-project-artifact.sh
+ mv cache-apache-project-artifact.sh tools/
+ chmod +x tools/cache-apache-project-artifact.sh
+ '''
+ }
dir("${YETUSDIR}") {
- checkout([
- $class : 'GitSCM',
- branches : [[name: "${YETUS_VERSION}"]],
- userRemoteConfigs: [[url:
'https://github.com/apache/yetus.git']]]
- )
+ sh'''#!/usr/bin/env bash
+ "${CACHE_APACHE_ARTIFACT}" \
+ --keys 'https://downloads.apache.org/yetus/KEYS' \
+ --verify-tar-gz \
+ ./apache-yetus-${YETUS_VERSION}-bin.tar.gz \
+
yetus/${YETUS_VERSION}/apache-yetus-${YETUS_VERSION}-bin.tar.gz && \
+ tar --strip-components=1 -xzf
apache-yetus-${YETUS_VERSION}-bin.tar.gz && \
+ rm apache-yetus-${YETUS_VERSION}-bin.tar.gz
+ '''
}
dir("${WORKDIR}") {
withCredentials([
diff --git a/dev-support/jenkins/jenkins_precommit_github_yetus.sh
b/dev-support/jenkins/jenkins_precommit_github_yetus.sh
index c4b449c..79cc8a0 100755
--- a/dev-support/jenkins/jenkins_precommit_github_yetus.sh
+++ b/dev-support/jenkins/jenkins_precommit_github_yetus.sh
@@ -29,7 +29,7 @@ fi
declare -i missing_env=0
declare -a required_envs=(
- # these ENV variables define the required API with Jenkinsfile_GitHub
+ # these ENV variables define the required API with Jenkinsfile
"ARCHIVE_PATTERN_LIST"
"BUILD_URL_ARTIFACTS"
"DOCKERFILE"
@@ -56,7 +56,7 @@ if [ ${missing_env} -gt 0 ]; then
fi
# TODO (HBASE-23900): cannot assume test-patch runs directly from sources
-TESTPATCHBIN="${YETUSDIR}/precommit/src/main/shell/test-patch.sh"
+TESTPATCHBIN="${YETUSDIR}/bin/test-patch"
# this must be clean for every run
rm -rf "${PATCHDIR}"
@@ -88,8 +88,8 @@ YETUS_ARGS+=("--basedir=${SOURCEDIR}")
# lots of different output formats
YETUS_ARGS+=("--console-report-file=${PATCHDIR}/console.txt")
# enable writing back to Github
-YETUS_ARGS+=("--github-password=${GITHUB_PASSWORD}")
-YETUS_ARGS+=("--github-user=${GITHUB_USER}")
+YETUS_ARGS+=("--github-token=${GITHUB_PASSWORD}")
+YETUS_ARGS+=("--github-write-comment")
# auto-kill any surefire stragglers during unit test runs
YETUS_ARGS+=("--reapermode=kill")
# set relatively high limits for ASF machines
diff --git a/hbase-shaded-jetty-12-plus-core/pom.xml
b/hbase-shaded-jetty-12-plus-core/pom.xml
index 5756391..d8173d5 100644
--- a/hbase-shaded-jetty-12-plus-core/pom.xml
+++ b/hbase-shaded-jetty-12-plus-core/pom.xml
@@ -37,7 +37,7 @@
</parent>
<artifactId>hbase-shaded-jetty-12-plus-core</artifactId>
<name>Apache HBase Relocated (Shaded) Jetty 12+ Libs: Core</name>
- <description>Pulls down Jetty core, relocates it and makes a far
jar.</description>
+ <description>Pulls down Jetty 12 core, relocates it and makes a fat
jar.</description>
<properties>
<!-- Override bytecode enforcement for jetty modules -->
<skipJdk8BytecodeCheck>true</skipJdk8BytecodeCheck>
diff --git a/hbase-shaded-jetty-12-plus-ee8/pom.xml
b/hbase-shaded-jetty-12-plus-ee8/pom.xml
index 750ed72..fd12c98 100644
--- a/hbase-shaded-jetty-12-plus-ee8/pom.xml
+++ b/hbase-shaded-jetty-12-plus-ee8/pom.xml
@@ -37,7 +37,7 @@
</parent>
<artifactId>hbase-shaded-jetty-12-plus-ee8</artifactId>
<name>Apache HBase Relocated (Shaded) Jetty 12+ Libs: EE8</name>
- <description>Pulls down Jetty EE8, relocates it and makes a far
jar.</description>
+ <description>Pulls down Jetty 12 EE8, relocates it and makes a fat
jar.</description>
<properties>
<!-- Override bytecode enforcement for jetty modules -->
<skipJdk8BytecodeCheck>true</skipJdk8BytecodeCheck>
diff --git a/hbase-shaded-jetty/pom.xml b/hbase-shaded-jetty/pom.xml
index 859dbff..9cc8a18 100644
--- a/hbase-shaded-jetty/pom.xml
+++ b/hbase-shaded-jetty/pom.xml
@@ -37,7 +37,7 @@
</parent>
<artifactId>hbase-shaded-jetty</artifactId>
<name>Apache HBase Relocated (Shaded) Jetty Libs</name>
- <description>Pulls down Jetty, relocates it and makes a far
jar.</description>
+ <description>Pulls down Jetty 9, relocates it and makes a fat
jar.</description>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
diff --git a/pom.xml b/pom.xml
index d90b68a..5e6db1f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,20 +108,15 @@
<module>hbase-unsafe</module>
</modules>
<scm>
- <connection>scm:git:git://git.apache.org/hbase-thirdparty.git</connection>
-
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/hbase-thirdparty.git</developerConnection>
- <url>https://git-wip-us.apache.org/repos/asf?p=hbase-thirdparty.git</url>
+
<connection>scm:git:git://gitbox.apache.org/repos/asf/hbase-thirdparty.git</connection>
+
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase-thirdparty.git</developerConnection>
+ <url>https://gitbox.apache.org/repos/asf?p=hbase-thirdparty.git</url>
</scm>
<issueManagement>
<!--File issues for this project against Apache HBase JIRA-->
<system>JIRA</system>
- <url>http://issues.apache.org/jira/browse/HBASE</url>
+ <url>https://issues.apache.org/jira/browse/HBASE</url>
</issueManagement>
- <ciManagement>
- <system>hudson</system>
-
<url>http://hudson.zones.apache.org/hudson/view/HBase/job/HBase-TRUNK/</url>
- </ciManagement>
- <!--TODO-->
<properties>
<revision>4.1.12-SNAPSHOT</revision>
<maven.javadoc.skip>true</maven.javadoc.skip>