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 @@
hbase-shaded-jetty-12-plus-core
Apache HBase Relocated (Shaded) Jetty 12+ Libs: Core
- Pulls down Jetty core, relocates it and makes a far jar.
+ Pulls down Jetty 12 core, relocates it and makes a fat jar.
true
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 @@
hbase-shaded-jetty-12-plus-ee8
Apache HBase Relocated (Shaded) Jetty 12+ Libs: EE8
- Pulls down Jetty EE8, relocates it and makes a far jar.
+ Pulls down Jetty 12 EE8, relocates it and makes a fat jar.
true
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 @@
hbase-shaded-jetty
Apache HBase Relocated (Shaded) Jetty Libs
- Pulls down Jetty, relocates it and makes a far jar.
+ Pulls down Jetty 9, relocates it and makes a fat jar.
org.eclipse.jetty
diff --git a/pom.xml b/pom.xml
index d90b68a..5e6db1f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,20 +108,15 @@
hbase-unsafe
- scm:git:git://git.apache.org/hbase-thirdparty.git
- scm:git:https://git-wip-us.apache.org/repos/asf/hbase-thirdparty.git
- https://git-wip-us.apache.org/repos/asf?p=hbase-thirdparty.git
+ scm:git:git://gitbox.apache.org/repos/asf/hbase-thirdparty.git
+ scm:git:https://gitbox.apache.org/repos/asf/hbase-thirdparty.git
+ https://gitbox.apache.org/repos/asf?p=hbase-thirdparty.git
JIRA
- http://issues.apache.org/jira/browse/HBASE
+ https://issues.apache.org/jira/browse/HBASE
-
- hudson
- http://hudson.zones.apache.org/hudson/view/HBase/job/HBase-TRUNK/
-
-
4.1.12-SNAPSHOT
true