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 <nihalj...@apache.org> 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 <zhang...@apache.org> --- 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>