From 29f841f7c810e240b3dd60f94c0793e3f64d2da4 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Fri, 25 Jul 2025 15:09:56 +0530 Subject: [PATCH 1/7] HBASE-29465 [hbase-thirdparty] Update yetus for hbase-thirdparty --- dev-support/jenkins/Dockerfile | 2 ++ dev-support/jenkins/Jenkinsfile | 12 ++++++------ .../jenkins/jenkins_precommit_github_yetus.sh | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/dev-support/jenkins/Dockerfile b/dev-support/jenkins/Dockerfile index 5ebc37d..7c505c4 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/* \ diff --git a/dev-support/jenkins/Jenkinsfile b/dev-support/jenkins/Jenkinsfile index e6d9b97..88de48e 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' @@ -80,11 +80,11 @@ pipeline { checkout scm } dir("${YETUSDIR}") { - checkout([ - $class : 'GitSCM', - branches : [[name: "${YETUS_VERSION}"]], - userRemoteConfigs: [[url: 'https://github.com/apache/yetus.git']]] - ) + sh'''#!/usr/bin/env bash + wget https://dlcdn.apache.org/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..399c6f0 100755 --- a/dev-support/jenkins/jenkins_precommit_github_yetus.sh +++ b/dev-support/jenkins/jenkins_precommit_github_yetus.sh @@ -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 From 40f421da9dd9664c2d890b49c135602b0533c247 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Fri, 25 Jul 2025 15:37:45 +0530 Subject: [PATCH 2/7] Copy cache-apache-project-artifact.sh from hbase and sync download logic --- dev-support/jenkins/Jenkinsfile | 8 +- .../jenkins/cache-apache-project-artifact.sh | 149 ++++++++++++++++++ 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 dev-support/jenkins/cache-apache-project-artifact.sh diff --git a/dev-support/jenkins/Jenkinsfile b/dev-support/jenkins/Jenkinsfile index 88de48e..292b749 100644 --- a/dev-support/jenkins/Jenkinsfile +++ b/dev-support/jenkins/Jenkinsfile @@ -51,6 +51,7 @@ pipeline { // Branch or tag name. Yetus release tags are 'rel/X.Y.Z' YETUS_VERSION = '0.15.0' DOCKERFILE_REL = "${SRC_REL}/dev-support/jenkins/Dockerfile" + CACHE_APACHE_ARTIFACT_REL = "${SRC_REL}/dev-support/jenkins/cache-apache-project-artifact.sh" YETUS_DRIVER_REL = "${SRC_REL}/dev-support/jenkins/jenkins_precommit_github_yetus.sh" ARCHIVE_PATTERN_LIST = '*.dump' SET_JAVA_HOME = "/usr/lib/jvm/java-17" @@ -71,6 +72,7 @@ pipeline { SOURCEDIR = "${WORKDIR}/${SRC_REL}" PATCHDIR = "${WORKDIR}/${PATCH_REL}" DOCKERFILE = "${WORKDIR}/${DOCKERFILE_REL}" + CACHE_APACHE_ARTIFACT = "${WORKDIR}/${CACHE_APACHE_ARTIFACT_REL}" YETUS_DRIVER = "${WORKDIR}/${YETUS_DRIVER_REL}" YETUSDIR = "${WORKDIR}/${YETUS_REL}" BUILD_URL_ARTIFACTS = "artifact/${WORKDIR_REL}/${PATCH_REL}" @@ -81,7 +83,11 @@ pipeline { } dir("${YETUSDIR}") { sh'''#!/usr/bin/env bash - wget https://dlcdn.apache.org/yetus/${YETUS_VERSION}/apache-yetus-${YETUS_VERSION}-bin.tar.gz && \ + "${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 ''' diff --git a/dev-support/jenkins/cache-apache-project-artifact.sh b/dev-support/jenkins/cache-apache-project-artifact.sh new file mode 100644 index 0000000..36ebe71 --- /dev/null +++ b/dev-support/jenkins/cache-apache-project-artifact.sh @@ -0,0 +1,149 @@ +#!/usr/bin/env bash +# 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. + +set -e +function usage { + echo "Usage: ${0} [options] /path/to/download/file.tar.gz download/fragment/eg/project/subdir/some-artifact-version.tar.gz" + echo "" + echo " --force for a redownload even if /path/to/download/file.tar.gz exists." + echo " --verify-tar-gz Only use a cached file if it can be parsed as a gzipped tarball." + echo " --working-dir /path/to/use Path for writing tempfiles. must exist." + echo " defaults to making a directory via mktemp that we clean." + echo " --keys url://to/project/KEYS where to get KEYS. needed to check signature on download." + echo "" + exit 1 +} +# if no args specified, show usage +if [ $# -lt 2 ]; then + usage +fi + + +# Get arguments +declare done_if_cached="true" +declare verify_tar_gz="false" +declare working_dir +declare cleanup="true" +declare keys +while [ $# -gt 0 ] +do + case "$1" in + --force) shift; done_if_cached="false";; + --verify-tar-gz) shift; verify_tar_gz="true";; + --working-dir) shift; working_dir=$1; cleanup="false"; shift;; + --keys) shift; keys=$1; shift;; + --) shift; break;; + -*) usage ;; + *) break;; # terminate while loop + esac +done + +# should still have required args +if [ $# -lt 2 ]; then + usage +fi + +target="$1" +artifact="$2" + +if [ -f "${target}" ] && [ -s "${target}" ] && [ -r "${target}" ] && [ "true" = "${done_if_cached}" ]; then + if [ "false" = "${verify_tar_gz}" ]; then + echo "Reusing existing download of '${artifact}'." + exit 0 + fi + if ! tar tzf "${target}" > /dev/null 2>&1; then + echo "Cached artifact is not a well formed gzipped tarball; clearing the cached file at '${target}'." + rm -rf "${target}" + else + echo "Reusing existing download of '${artifact}', which is a well formed gzipped tarball." + exit 0 + fi +fi + +if [ -z "${working_dir}" ]; then + if ! working_dir="$(mktemp -d -t hbase-download-apache-artifact-XXXXXX)" ; then + echo "Failed to create temporary working directory. Please specify via --working-dir" >&2 + exit 1 + fi +else + # absolutes please + working_dir="$(cd "$(dirname "${working_dir}")"; pwd)/$(basename "${working_dir}")" + if [ ! -d "${working_dir}" ]; then + echo "passed working directory '${working_dir}' must already exist." >&2 + exit 1 + fi +fi + +function cleanup { + if [ -n "${keys}" ]; then + echo "Stopping gpg agent daemon" + gpgconf --homedir "${working_dir}/.gpg" --kill gpg-agent + echo "Stopped gpg agent daemon" + fi + + if [ "true" = "${cleanup}" ]; then + echo "cleaning up temp space." + rm -rf "${working_dir}" + fi +} +trap cleanup EXIT SIGQUIT + +echo "New download of '${artifact}'" + +# N.B. this comes first so that if gpg falls over we skip the expensive download. +if [ -n "${keys}" ]; then + if [ ! -d "${working_dir}/.gpg" ]; then + rm -rf "${working_dir}/.gpg" + mkdir -p "${working_dir}/.gpg" + chmod -R 700 "${working_dir}/.gpg" + fi + + echo "installing project KEYS" + curl -L --fail -o "${working_dir}/KEYS" "${keys}" + if ! gpg --homedir "${working_dir}/.gpg" --import "${working_dir}/KEYS" ; then + echo "ERROR importing the keys via gpg failed. If the output above mentions this error:" >&2 + echo " gpg: can't connect to the agent: File name too long" >&2 + # we mean to give them the command to run, not to run it. + #shellcheck disable=SC2016 + echo 'then you prolly need to create /var/run/user/$(id -u)' >&2 + echo "see this thread on gnupg-users: https://s.apache.org/uI7x" >&2 + exit 2 + fi + + echo "downloading signature" + curl -L --fail -o "${working_dir}/artifact.asc" "https://archive.apache.org/dist/${artifact}.asc" +fi + +echo "downloading artifact" +if ! curl --dump-header "${working_dir}/artifact_download_headers.txt" -L --fail -o "${working_dir}/artifact" "https://www.apache.org/dyn/closer.lua?filename=${artifact}&action=download" ; then + echo "Artifact wasn't in mirror system. falling back to archive.a.o." + curl --dump-header "${working_dir}/artifact_fallback_headers.txt" -L --fail -o "${working_dir}/artifact" "http://archive.apache.org/dist/${artifact}" +fi + +if [ -n "${keys}" ]; then + echo "verifying artifact signature" + gpg --homedir "${working_dir}/.gpg" --verify "${working_dir}/artifact.asc" + echo "signature good." +fi + +echo "moving artifact into place at '${target}'" +# ensure we're on the same filesystem +mv "${working_dir}/artifact" "${target}.copying" +# attempt atomic move +mv "${target}.copying" "${target}" +echo "all done!" \ No newline at end of file From e45edf195dcd614685f77d955626d5a6506de93e Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Fri, 25 Jul 2025 15:49:35 +0530 Subject: [PATCH 3/7] Drop as we already have the cache-apache-project-artifact.sh --- dev-support/jenkins/Jenkinsfile | 3 +- .../jenkins/cache-apache-project-artifact.sh | 149 ------------------ 2 files changed, 1 insertion(+), 151 deletions(-) delete mode 100644 dev-support/jenkins/cache-apache-project-artifact.sh diff --git a/dev-support/jenkins/Jenkinsfile b/dev-support/jenkins/Jenkinsfile index 292b749..b37b159 100644 --- a/dev-support/jenkins/Jenkinsfile +++ b/dev-support/jenkins/Jenkinsfile @@ -51,7 +51,6 @@ pipeline { // Branch or tag name. Yetus release tags are 'rel/X.Y.Z' YETUS_VERSION = '0.15.0' DOCKERFILE_REL = "${SRC_REL}/dev-support/jenkins/Dockerfile" - CACHE_APACHE_ARTIFACT_REL = "${SRC_REL}/dev-support/jenkins/cache-apache-project-artifact.sh" YETUS_DRIVER_REL = "${SRC_REL}/dev-support/jenkins/jenkins_precommit_github_yetus.sh" ARCHIVE_PATTERN_LIST = '*.dump' SET_JAVA_HOME = "/usr/lib/jvm/java-17" @@ -72,7 +71,7 @@ pipeline { SOURCEDIR = "${WORKDIR}/${SRC_REL}" PATCHDIR = "${WORKDIR}/${PATCH_REL}" DOCKERFILE = "${WORKDIR}/${DOCKERFILE_REL}" - CACHE_APACHE_ARTIFACT = "${WORKDIR}/${CACHE_APACHE_ARTIFACT_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}" diff --git a/dev-support/jenkins/cache-apache-project-artifact.sh b/dev-support/jenkins/cache-apache-project-artifact.sh deleted file mode 100644 index 36ebe71..0000000 --- a/dev-support/jenkins/cache-apache-project-artifact.sh +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env bash -# 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. - -set -e -function usage { - echo "Usage: ${0} [options] /path/to/download/file.tar.gz download/fragment/eg/project/subdir/some-artifact-version.tar.gz" - echo "" - echo " --force for a redownload even if /path/to/download/file.tar.gz exists." - echo " --verify-tar-gz Only use a cached file if it can be parsed as a gzipped tarball." - echo " --working-dir /path/to/use Path for writing tempfiles. must exist." - echo " defaults to making a directory via mktemp that we clean." - echo " --keys url://to/project/KEYS where to get KEYS. needed to check signature on download." - echo "" - exit 1 -} -# if no args specified, show usage -if [ $# -lt 2 ]; then - usage -fi - - -# Get arguments -declare done_if_cached="true" -declare verify_tar_gz="false" -declare working_dir -declare cleanup="true" -declare keys -while [ $# -gt 0 ] -do - case "$1" in - --force) shift; done_if_cached="false";; - --verify-tar-gz) shift; verify_tar_gz="true";; - --working-dir) shift; working_dir=$1; cleanup="false"; shift;; - --keys) shift; keys=$1; shift;; - --) shift; break;; - -*) usage ;; - *) break;; # terminate while loop - esac -done - -# should still have required args -if [ $# -lt 2 ]; then - usage -fi - -target="$1" -artifact="$2" - -if [ -f "${target}" ] && [ -s "${target}" ] && [ -r "${target}" ] && [ "true" = "${done_if_cached}" ]; then - if [ "false" = "${verify_tar_gz}" ]; then - echo "Reusing existing download of '${artifact}'." - exit 0 - fi - if ! tar tzf "${target}" > /dev/null 2>&1; then - echo "Cached artifact is not a well formed gzipped tarball; clearing the cached file at '${target}'." - rm -rf "${target}" - else - echo "Reusing existing download of '${artifact}', which is a well formed gzipped tarball." - exit 0 - fi -fi - -if [ -z "${working_dir}" ]; then - if ! working_dir="$(mktemp -d -t hbase-download-apache-artifact-XXXXXX)" ; then - echo "Failed to create temporary working directory. Please specify via --working-dir" >&2 - exit 1 - fi -else - # absolutes please - working_dir="$(cd "$(dirname "${working_dir}")"; pwd)/$(basename "${working_dir}")" - if [ ! -d "${working_dir}" ]; then - echo "passed working directory '${working_dir}' must already exist." >&2 - exit 1 - fi -fi - -function cleanup { - if [ -n "${keys}" ]; then - echo "Stopping gpg agent daemon" - gpgconf --homedir "${working_dir}/.gpg" --kill gpg-agent - echo "Stopped gpg agent daemon" - fi - - if [ "true" = "${cleanup}" ]; then - echo "cleaning up temp space." - rm -rf "${working_dir}" - fi -} -trap cleanup EXIT SIGQUIT - -echo "New download of '${artifact}'" - -# N.B. this comes first so that if gpg falls over we skip the expensive download. -if [ -n "${keys}" ]; then - if [ ! -d "${working_dir}/.gpg" ]; then - rm -rf "${working_dir}/.gpg" - mkdir -p "${working_dir}/.gpg" - chmod -R 700 "${working_dir}/.gpg" - fi - - echo "installing project KEYS" - curl -L --fail -o "${working_dir}/KEYS" "${keys}" - if ! gpg --homedir "${working_dir}/.gpg" --import "${working_dir}/KEYS" ; then - echo "ERROR importing the keys via gpg failed. If the output above mentions this error:" >&2 - echo " gpg: can't connect to the agent: File name too long" >&2 - # we mean to give them the command to run, not to run it. - #shellcheck disable=SC2016 - echo 'then you prolly need to create /var/run/user/$(id -u)' >&2 - echo "see this thread on gnupg-users: https://s.apache.org/uI7x" >&2 - exit 2 - fi - - echo "downloading signature" - curl -L --fail -o "${working_dir}/artifact.asc" "https://archive.apache.org/dist/${artifact}.asc" -fi - -echo "downloading artifact" -if ! curl --dump-header "${working_dir}/artifact_download_headers.txt" -L --fail -o "${working_dir}/artifact" "https://www.apache.org/dyn/closer.lua?filename=${artifact}&action=download" ; then - echo "Artifact wasn't in mirror system. falling back to archive.a.o." - curl --dump-header "${working_dir}/artifact_fallback_headers.txt" -L --fail -o "${working_dir}/artifact" "http://archive.apache.org/dist/${artifact}" -fi - -if [ -n "${keys}" ]; then - echo "verifying artifact signature" - gpg --homedir "${working_dir}/.gpg" --verify "${working_dir}/artifact.asc" - echo "signature good." -fi - -echo "moving artifact into place at '${target}'" -# ensure we're on the same filesystem -mv "${working_dir}/artifact" "${target}.copying" -# attempt atomic move -mv "${target}.copying" "${target}" -echo "all done!" \ No newline at end of file From ad8071ae57beacac1f82bf776135ea2cedddda22 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Fri, 25 Jul 2025 15:56:02 +0530 Subject: [PATCH 4/7] Download as "noop htrace drop in" doesnot happen first --- dev-support/jenkins/Jenkinsfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dev-support/jenkins/Jenkinsfile b/dev-support/jenkins/Jenkinsfile index b37b159..0de41d9 100644 --- a/dev-support/jenkins/Jenkinsfile +++ b/dev-support/jenkins/Jenkinsfile @@ -80,6 +80,15 @@ 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}") { sh'''#!/usr/bin/env bash "${CACHE_APACHE_ARTIFACT}" \ From e8bb9ac8c9509623dc727e9db1d529b64520231b Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Fri, 25 Jul 2025 22:41:16 +0530 Subject: [PATCH 5/7] try fix --- dev-support/jenkins/Dockerfile | 56 +++++++++++++++++-- .../jenkins/jenkins_precommit_github_yetus.sh | 2 +- pom.xml | 13 ++--- 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/dev-support/jenkins/Dockerfile b/dev-support/jenkins/Dockerfile index 7c505c4..d542706 100644 --- a/dev-support/jenkins/Dockerfile +++ b/dev-support/jenkins/Dockerfile @@ -112,14 +112,60 @@ 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 "Warning: toolchains-jenkins.xml file not found in any expected location!" + echo "Searched locations:" + for location in "${TOOLCHAIN_LOCATIONS[@]}"; do + echo " - $location" + done + 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/jenkins_precommit_github_yetus.sh b/dev-support/jenkins/jenkins_precommit_github_yetus.sh index 399c6f0..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" 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 From c511ac5ac5d4ed7e5f077ef1cf44e672d1ca2430 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Sat, 26 Jul 2025 00:54:55 +0530 Subject: [PATCH 6/7] change message to error --- dev-support/jenkins/Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dev-support/jenkins/Dockerfile b/dev-support/jenkins/Dockerfile index d542706..5f76407 100644 --- a/dev-support/jenkins/Dockerfile +++ b/dev-support/jenkins/Dockerfile @@ -153,11 +153,7 @@ if [ -n "$TOOLCHAIN" ]; then "${MAVEN_HOME}/bin/mvn-original" "$@" -t "$TOOLCHAIN" exit_code=$? else - echo "Warning: toolchains-jenkins.xml file not found in any expected location!" - echo "Searched locations:" - for location in "${TOOLCHAIN_LOCATIONS[@]}"; do - echo " - $location" - done + 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" "$@" From 95550b6ba4e2919cc49b7ca355ca393e007b8b97 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Sat, 26 Jul 2025 01:02:17 +0530 Subject: [PATCH 7/7] fix typos --- hbase-shaded-jetty-12-plus-core/pom.xml | 2 +- hbase-shaded-jetty-12-plus-ee8/pom.xml | 2 +- hbase-shaded-jetty/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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