From b88ef73e5c81c8e39ac4f282f67c6a03786fa8e3 Mon Sep 17 00:00:00 2001 From: Loki Date: Sun, 12 Apr 2026 23:52:30 +0800 Subject: [PATCH 1/9] improve: improve ci-loader --- .github/workflows/loader-ci.yml | 21 ++++++++- .../assembly/travis/install-hadoop.sh | 47 ++++++++++++++----- .../travis/install-hugegraph-from-source.sh | 29 ++++++++---- .../assembly/travis/install-mysql.sh | 12 ++++- 4 files changed, 87 insertions(+), 22 deletions(-) diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index b3e62b2f1..c44bc35cc 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -35,6 +35,14 @@ jobs: strategy: matrix: JAVA_VERSION: ['11'] + services: + mysql: + image: mysql:5.7 + env: + MYSQL_ROOT_PASSWORD: root + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - name: Fetch Code @@ -55,6 +63,18 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 + - name: Cache Hadoop + uses: actions/cache@v4 + with: + path: ~/hadoop-2.8.5.tar.gz + key: ${{ runner.os }}-hadoop-2.8.5 + + - name: Cache HugeGraph Server + uses: actions/cache@v4 + with: + path: ~/hugegraph-cache-${{ env.COMMIT_ID }} + key: ${{ runner.os }}-hugegraph-server-${{ env.COMMIT_ID }} + - name: use staged maven repo settings if: ${{ env.USE_STAGE == 'true' }} run: | @@ -68,7 +88,6 @@ jobs: - name: Prepare env and service run: | $TRAVIS_DIR/install-hadoop.sh - $TRAVIS_DIR/install-mysql.sh ${{ env.DB_DATABASE }} ${{ env.DB_PASS }} $TRAVIS_DIR/install-hugegraph-from-source.sh $COMMIT_ID - name: Run test diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index cae279ae3..3a9604b97 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -17,22 +17,44 @@ # set -ev -sudo wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz +HADOOP_VERSION="2.8.5" +HADOOP_TARBALL="hadoop-${HADOOP_VERSION}.tar.gz" +HADOOP_HOME="/usr/local/hadoop" +HADOOP_TARBALL_PATH="${HOME}/${HADOOP_TARBALL}" -sudo tar -zxf hadoop-2.8.5.tar.gz -C /usr/local -cd /usr/local -sudo mv hadoop-2.8.5 hadoop -#sudo chown -R travis ./hadoop -cd hadoop +if [[ ! -d "${HADOOP_HOME}" ]]; then + if [[ ! -f "${HADOOP_TARBALL_PATH}" ]]; then + echo "Downloading Hadoop ${HADOOP_VERSION}..." + wget -O "${HADOOP_TARBALL_PATH}" "https://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/${HADOOP_TARBALL}" + else + echo "Using cached Hadoop tarball at ${HADOOP_TARBALL_PATH}" + fi + echo "Extracting Hadoop to ${HADOOP_HOME}..." + sudo tar -zxf "${HADOOP_TARBALL_PATH}" -C /usr/local + cd /usr/local + sudo mv "hadoop-${HADOOP_VERSION}" hadoop +else + echo "Hadoop already installed at ${HADOOP_HOME}, skipping download and extraction." +fi + +cd "${HADOOP_HOME}" pwd -echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc -echo "export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native" >> ~/.bashrc -echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> ~/.bashrc +# Export for GitHub Actions subsequent steps +if [[ -n "${GITHUB_ENV:-}" ]]; then + echo "HADOOP_HOME=${HADOOP_HOME}" >> "${GITHUB_ENV}" + echo "HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" >> "${GITHUB_ENV}" + echo "PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> "${GITHUB_ENV}" +fi + +echo "export HADOOP_HOME=${HADOOP_HOME}" >> ~/.bashrc +echo "export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" >> ~/.bashrc +echo "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc source ~/.bashrc -tee etc/hadoop/core-site.xml < fs.defaultFS @@ -40,8 +62,10 @@ tee etc/hadoop/core-site.xml < EOF +fi -tee etc/hadoop/hdfs-site.xml < dfs.namenode.name.dir @@ -61,6 +85,7 @@ tee etc/hadoop/hdfs-site.xml < EOF +fi bin/hdfs namenode -format sbin/hadoop-daemon.sh start namenode diff --git a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh index 354acd958..8884c1268 100755 --- a/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh +++ b/hugegraph-loader/assembly/travis/install-hugegraph-from-source.sh @@ -23,15 +23,28 @@ fi COMMIT_ID=$1 HUGEGRAPH_GIT_URL="https://github.com/apache/hugegraph.git" +CACHE_DIR="${HOME}/hugegraph-cache-${COMMIT_ID}" + +mkdir -p "${CACHE_DIR}" + +CACHED_TARBALL=$(find "${CACHE_DIR}" -maxdepth 1 -name "apache-hugegraph-*.tar.gz" -print -quit) + +if [[ -f "${CACHED_TARBALL}" ]]; then + echo "Found cached HugeGraph server tarball, skipping build." + cp "${CACHED_TARBALL}" ./ +else + echo "Building HugeGraph server from source (commit ${COMMIT_ID})..." + git clone --depth 150 ${HUGEGRAPH_GIT_URL} hugegraph + cd hugegraph + git checkout "${COMMIT_ID}" + mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp + cd hugegraph-server + mv apache-hugegraph-*.tar.gz ../../ + cd ../../ + rm -rf hugegraph + cp apache-hugegraph-*.tar.gz "${CACHE_DIR}"/ +fi -git clone --depth 150 ${HUGEGRAPH_GIT_URL} hugegraph -cd hugegraph -git checkout "${COMMIT_ID}" -mvn package -DskipTests -Dmaven.javadoc.skip=true -ntp -cd hugegraph-server -mv apache-hugegraph-*.tar.gz ../../ -cd ../../ -rm -rf hugegraph tar zxf apache-hugegraph-*.tar.gz HTTPS_SERVER_DIR="hugegraph_https" diff --git a/hugegraph-loader/assembly/travis/install-mysql.sh b/hugegraph-loader/assembly/travis/install-mysql.sh index de1aef2fb..c64cb7830 100755 --- a/hugegraph-loader/assembly/travis/install-mysql.sh +++ b/hugegraph-loader/assembly/travis/install-mysql.sh @@ -23,12 +23,20 @@ TRAVIS_DIR=$(dirname $0) CONF=hugegraph-test/src/main/resources/hugegraph.properties MYSQL_USERNAME=root -# Set MySQL configurations +DB_NAME="${1:-mysql}" +DB_PASS="${2:-root}" + +# Skip if MySQL is already running (e.g., provided by GitHub Actions service) +if docker ps | grep -q "mysql:5.7"; then + echo "MySQL 5.7 container is already running, skipping setup." + exit 0 +fi +# Set MySQL configurations # Keep for upgrade in future docker pull mysql:5.7 -docker run -p 3306:3306 --name "$1" -e MYSQL_ROOT_PASSWORD="$2" -d mysql:5.7 +docker run -p 3306:3306 --name "${DB_NAME}" -e MYSQL_ROOT_PASSWORD="${DB_PASS}" -d mysql:5.7 # Old Version From 12f4a7018e2eaa754ccc69075ce6f09fdb16601a Mon Sep 17 00:00:00 2001 From: Loki Date: Mon, 13 Apr 2026 22:02:35 +0800 Subject: [PATCH 2/9] improve: use the action docker service --- .github/workflows/loader-ci.yml | 38 +++++++++++++------ .../assembly/travis/install-hadoop.sh | 12 +++++- .../assembly/travis/install-mysql.sh | 4 +- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index c44bc35cc..fe79d211b 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -26,12 +26,12 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static - # TODO: replace it with the (latest - n) commit id (n >= 15) - # hugegraph commit date: 2025-10-30 - COMMIT_ID: 5b3d295 + # replace it with the (latest - n) commit id (n >= 15) + COMMIT_ID: ${{ steps.get-commit-id.outputs.commit_id }} DB_USER: root DB_PASS: root DB_DATABASE: load_test + HADOOP_VERSION: 3.3.6 strategy: matrix: JAVA_VERSION: ['11'] @@ -43,12 +43,35 @@ jobs: ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + hdfs: + image: apache/hadoop:3.3.6 + ports: + - 9000:9000 + - 9870:9870 + env: + HADOOP_HOME: /opt/hadoop + HDFS_NAMENODE_USER: root + HDFS_DATANODE_USER: root + options: >- + --entrypoint /bin/bash + -c "/opt/hadoop/bin/hdfs namenode -format && /opt/hadoop/sbin/start-dfs.sh && tail -f /dev/null" + --health-cmd="curl -f http://localhost:9870" + --health-interval=10s + --health-timeout=5s + --health-retries=5 steps: - name: Fetch Code uses: actions/checkout@v4 with: - fetch-depth: 2 + fetch-depth: 0 + + - name: Get latest 15 commit id from master + id: get-commit-id + run: | + git fetch origin master + COMMIT_ID=$(git log --format="%h" origin/master -n 15 | head -n 1) + echo "commit_id=$COMMIT_ID" >> $GITHUB_OUTPUT - name: Install JDK 11 uses: actions/setup-java@v4 @@ -63,12 +86,6 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - - name: Cache Hadoop - uses: actions/cache@v4 - with: - path: ~/hadoop-2.8.5.tar.gz - key: ${{ runner.os }}-hadoop-2.8.5 - - name: Cache HugeGraph Server uses: actions/cache@v4 with: @@ -87,7 +104,6 @@ jobs: - name: Prepare env and service run: | - $TRAVIS_DIR/install-hadoop.sh $TRAVIS_DIR/install-hugegraph-from-source.sh $COMMIT_ID - name: Run test diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index 3a9604b97..d99c5e2c6 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -17,7 +17,7 @@ # set -ev -HADOOP_VERSION="2.8.5" +HADOOP_VERSION="3.3.0" HADOOP_TARBALL="hadoop-${HADOOP_VERSION}.tar.gz" HADOOP_HOME="/usr/local/hadoop" HADOOP_TARBALL_PATH="${HOME}/${HADOOP_TARBALL}" @@ -47,7 +47,15 @@ if [[ -n "${GITHUB_ENV:-}" ]]; then echo "PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> "${GITHUB_ENV}" fi -echo "export HADOOP_HOME=${HADOOP_HOME}" >> ~/.bashrc +if ! grep -qxF "export HADOOP_HOME=${HADOOP_HOME}" ~/.bashrc; then + echo "export HADOOP_HOME=${HADOOP_HOME}" >> ~/.bashrc +fi +if ! grep -qxF "export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" ~/.bashrc; then + echo "export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" >> ~/.bashrc +fi +if ! grep -qxF "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" ~/.bashrc; then + echo "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc +fi echo "export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" >> ~/.bashrc echo "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc diff --git a/hugegraph-loader/assembly/travis/install-mysql.sh b/hugegraph-loader/assembly/travis/install-mysql.sh index c64cb7830..df676edf8 100755 --- a/hugegraph-loader/assembly/travis/install-mysql.sh +++ b/hugegraph-loader/assembly/travis/install-mysql.sh @@ -27,8 +27,8 @@ DB_NAME="${1:-mysql}" DB_PASS="${2:-root}" # Skip if MySQL is already running (e.g., provided by GitHub Actions service) -if docker ps | grep -q "mysql:5.7"; then - echo "MySQL 5.7 container is already running, skipping setup." +if docker ps --format '{{.Names}}' | grep -qx "${DB_NAME}"; then + echo "MySQL container ${DB_NAME} is already running, skipping setup." exit 0 fi From 907db8457e27a55a4a11b224b3c13b75ca47f8c8 Mon Sep 17 00:00:00 2001 From: Loki Date: Mon, 13 Apr 2026 22:57:06 +0800 Subject: [PATCH 3/9] fix: remove HDFS docker service --- .github/workflows/loader-ci.yml | 31 ++++++------------- .../assembly/travis/install-hadoop.sh | 2 +- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index fe79d211b..0d8625664 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -26,8 +26,6 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static - # replace it with the (latest - n) commit id (n >= 15) - COMMIT_ID: ${{ steps.get-commit-id.outputs.commit_id }} DB_USER: root DB_PASS: root DB_DATABASE: load_test @@ -43,22 +41,6 @@ jobs: ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - hdfs: - image: apache/hadoop:3.3.6 - ports: - - 9000:9000 - - 9870:9870 - env: - HADOOP_HOME: /opt/hadoop - HDFS_NAMENODE_USER: root - HDFS_DATANODE_USER: root - options: >- - --entrypoint /bin/bash - -c "/opt/hadoop/bin/hdfs namenode -format && /opt/hadoop/sbin/start-dfs.sh && tail -f /dev/null" - --health-cmd="curl -f http://localhost:9870" - --health-interval=10s - --health-timeout=5s - --health-retries=5 steps: - name: Fetch Code @@ -86,11 +68,17 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 + - name: Cache Hadoop + uses: actions/cache@v4 + with: + path: ~/hadoop-3.3.6.tar.gz + key: ${{ runner.os }}-hadoop-3.3.6 + - name: Cache HugeGraph Server uses: actions/cache@v4 with: - path: ~/hugegraph-cache-${{ env.COMMIT_ID }} - key: ${{ runner.os }}-hugegraph-server-${{ env.COMMIT_ID }} + path: ~/hugegraph-cache-${{ steps.get-commit-id.outputs.commit_id }} + key: ${{ runner.os }}-hugegraph-server-${{ steps.get-commit-id.outputs.commit_id }} - name: use staged maven repo settings if: ${{ env.USE_STAGE == 'true' }} @@ -104,7 +92,8 @@ jobs: - name: Prepare env and service run: | - $TRAVIS_DIR/install-hugegraph-from-source.sh $COMMIT_ID + $TRAVIS_DIR/install-hadoop.sh + $TRAVIS_DIR/install-hugegraph-from-source.sh ${{ steps.get-commit-id.outputs.commit_id }} - name: Run test run: | diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index d99c5e2c6..3939876f2 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -17,7 +17,7 @@ # set -ev -HADOOP_VERSION="3.3.0" +HADOOP_VERSION="3.3.6" HADOOP_TARBALL="hadoop-${HADOOP_VERSION}.tar.gz" HADOOP_HOME="/usr/local/hadoop" HADOOP_TARBALL_PATH="${HOME}/${HADOOP_TARBALL}" From 19f100ee0fd47c3e4652e64835423f87dc95b184 Mon Sep 17 00:00:00 2001 From: Loki Date: Mon, 13 Apr 2026 23:48:19 +0800 Subject: [PATCH 4/9] fix ci --- .github/workflows/loader-ci.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index 0d8625664..69c24c8e7 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -26,10 +26,12 @@ jobs: USE_STAGE: 'true' # Whether to include the stage repository. TRAVIS_DIR: hugegraph-loader/assembly/travis STATIC_DIR: hugegraph-loader/assembly/static + # TODO: replace it with the (latest - n) commit id (n >= 15) + # hugegraph commit date: 2025-10-30 + COMMIT_ID: 5b3d295 DB_USER: root DB_PASS: root DB_DATABASE: load_test - HADOOP_VERSION: 3.3.6 strategy: matrix: JAVA_VERSION: ['11'] @@ -46,14 +48,7 @@ jobs: - name: Fetch Code uses: actions/checkout@v4 with: - fetch-depth: 0 - - - name: Get latest 15 commit id from master - id: get-commit-id - run: | - git fetch origin master - COMMIT_ID=$(git log --format="%h" origin/master -n 15 | head -n 1) - echo "commit_id=$COMMIT_ID" >> $GITHUB_OUTPUT + fetch-depth: 2 - name: Install JDK 11 uses: actions/setup-java@v4 @@ -77,8 +72,8 @@ jobs: - name: Cache HugeGraph Server uses: actions/cache@v4 with: - path: ~/hugegraph-cache-${{ steps.get-commit-id.outputs.commit_id }} - key: ${{ runner.os }}-hugegraph-server-${{ steps.get-commit-id.outputs.commit_id }} + path: ~/hugegraph-cache-${{ env.COMMIT_ID }} + key: ${{ runner.os }}-hugegraph-server-${{ env.COMMIT_ID }} - name: use staged maven repo settings if: ${{ env.USE_STAGE == 'true' }} @@ -93,7 +88,7 @@ jobs: - name: Prepare env and service run: | $TRAVIS_DIR/install-hadoop.sh - $TRAVIS_DIR/install-hugegraph-from-source.sh ${{ steps.get-commit-id.outputs.commit_id }} + $TRAVIS_DIR/install-hugegraph-from-source.sh $COMMIT_ID - name: Run test run: | From 3593a54e9908a07d4671efc78ceffa85919c139a Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 14 Apr 2026 10:49:45 +0800 Subject: [PATCH 5/9] upgrade: upgrade hadoop version --- hugegraph-loader/assembly/travis/install-hadoop.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index 3939876f2..1e91fbe3f 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -56,13 +56,11 @@ fi if ! grep -qxF "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" ~/.bashrc; then echo "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc fi -echo "export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native" >> ~/.bashrc -echo "export PATH=\$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc source ~/.bashrc if [[ ! -f etc/hadoop/core-site.xml ]] || ! grep -q "hdfs://localhost:8020" etc/hadoop/core-site.xml; then - tee etc/hadoop/core-site.xml < /dev/null < fs.defaultFS @@ -73,7 +71,7 @@ EOF fi if [[ ! -f etc/hadoop/hdfs-site.xml ]] || ! grep -q "/opt/hdfs/name" etc/hadoop/hdfs-site.xml; then - tee etc/hadoop/hdfs-site.xml < /dev/null < dfs.namenode.name.dir From fbd055a56b653f386242bf078b8ee83d0f427a91 Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 14 Apr 2026 11:06:35 +0800 Subject: [PATCH 6/9] upgrade: upgrade mysql version --- .github/workflows/loader-ci.yml | 2 +- hugegraph-loader/assembly/travis/install-hadoop.sh | 1 + hugegraph-loader/assembly/travis/install-mysql.sh | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/loader-ci.yml b/.github/workflows/loader-ci.yml index 69c24c8e7..d992117b4 100644 --- a/.github/workflows/loader-ci.yml +++ b/.github/workflows/loader-ci.yml @@ -37,7 +37,7 @@ jobs: JAVA_VERSION: ['11'] services: mysql: - image: mysql:5.7 + image: mysql:8.0 env: MYSQL_ROOT_PASSWORD: root ports: diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index 1e91fbe3f..d70d8bb1b 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -33,6 +33,7 @@ if [[ ! -d "${HADOOP_HOME}" ]]; then sudo tar -zxf "${HADOOP_TARBALL_PATH}" -C /usr/local cd /usr/local sudo mv "hadoop-${HADOOP_VERSION}" hadoop + sudo chown -R "$(whoami):$(whoami)" "${HADOOP_HOME}" else echo "Hadoop already installed at ${HADOOP_HOME}, skipping download and extraction." fi diff --git a/hugegraph-loader/assembly/travis/install-mysql.sh b/hugegraph-loader/assembly/travis/install-mysql.sh index df676edf8..051c41b24 100755 --- a/hugegraph-loader/assembly/travis/install-mysql.sh +++ b/hugegraph-loader/assembly/travis/install-mysql.sh @@ -35,8 +35,8 @@ fi # Set MySQL configurations # Keep for upgrade in future -docker pull mysql:5.7 -docker run -p 3306:3306 --name "${DB_NAME}" -e MYSQL_ROOT_PASSWORD="${DB_PASS}" -d mysql:5.7 +docker pull mysql:8.0 +docker run -p 3306:3306 --name "${DB_NAME}" -e MYSQL_ROOT_PASSWORD="${DB_PASS}" -d mysql:8.0 # Old Version From 32b25adcc4006d45f322d15401b7f4c015bee364 Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 14 Apr 2026 11:33:45 +0800 Subject: [PATCH 7/9] fix: fix mysql parameter --- .../org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java | 3 ++- .../org/apache/hugegraph/loader/test/functional/DBUtil.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java b/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java index dc5833b66..6433bc3a4 100644 --- a/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java +++ b/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java @@ -305,7 +305,8 @@ public String buildUrl(JDBCSource source) { .setParameter("characterEncoding", Constants.CHARSET.name()) .setParameter("rewriteBatchedStatements", "true") .setParameter("useServerPrepStmts", "false") - .setParameter("autoReconnect", "true"); + .setParameter("autoReconnect", "true") + .setParameter("allowPublicKeyRetrieval", "true"); return JDBC_PREFIX + uriBuilder; } diff --git a/hugegraph-loader/src/test/java/org/apache/hugegraph/loader/test/functional/DBUtil.java b/hugegraph-loader/src/test/java/org/apache/hugegraph/loader/test/functional/DBUtil.java index 49b41db73..67fa0d549 100644 --- a/hugegraph-loader/src/test/java/org/apache/hugegraph/loader/test/functional/DBUtil.java +++ b/hugegraph-loader/src/test/java/org/apache/hugegraph/loader/test/functional/DBUtil.java @@ -43,7 +43,7 @@ public DBUtil(String driver, String url, String user, String pass) { public void connect(boolean useSSL) { try { Class.forName(this.driver); - String url = String.format("%s?useSSL=%s", this.url, useSSL); + String url = String.format("%s?useSSL=%s&allowPublicKeyRetrieval=true", this.url, useSSL); this.conn = DriverManager.getConnection(url, this.user, this.pass); } catch (ClassNotFoundException e) { throw new LoadException("Invalid driver class '%s'", e, this.driver); @@ -54,7 +54,7 @@ public void connect(boolean useSSL) { public void connect(String database, boolean useSSL) { this.close(); - String url = String.format("%s/%s?useSSL=%s", this.url, database, useSSL); + String url = String.format("%s/%s?useSSL=%s&allowPublicKeyRetrieval=true", this.url, database, useSSL); try { Class.forName(this.driver); this.conn = DriverManager.getConnection(url, this.user, this.pass); From 2d9ff913cf6e2ba9d486f0d09ef6737649931424 Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 14 Apr 2026 18:17:22 +0800 Subject: [PATCH 8/9] optimize: add some des --- hugegraph-loader/assembly/travis/install-hadoop.sh | 1 + hugegraph-loader/assembly/travis/install-mysql.sh | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/hugegraph-loader/assembly/travis/install-hadoop.sh b/hugegraph-loader/assembly/travis/install-hadoop.sh index d70d8bb1b..e439411c7 100755 --- a/hugegraph-loader/assembly/travis/install-hadoop.sh +++ b/hugegraph-loader/assembly/travis/install-hadoop.sh @@ -17,6 +17,7 @@ # set -ev +# Upgrade stable version to 3.3.6 HADOOP_VERSION="3.3.6" HADOOP_TARBALL="hadoop-${HADOOP_VERSION}.tar.gz" HADOOP_HOME="/usr/local/hadoop" diff --git a/hugegraph-loader/assembly/travis/install-mysql.sh b/hugegraph-loader/assembly/travis/install-mysql.sh index 051c41b24..934cdbbbb 100755 --- a/hugegraph-loader/assembly/travis/install-mysql.sh +++ b/hugegraph-loader/assembly/travis/install-mysql.sh @@ -15,6 +15,10 @@ # License for the specific language governing permissions and limitations # under the License. # +# NOTE: This script is NO LONGER actively used in CI. +# It has been replaced by the MySQL service container in: +# .github/workflows/loader-ci.yml +# Kept temporarily as a backup / for legacy Travis compatibility only. set -ev TRAVIS_DIR=$(dirname $0) From 987b1f5cae7f9eda2aadbc12a907b8af658314cf Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 14 Apr 2026 21:59:54 +0800 Subject: [PATCH 9/9] fix: fix wrong mysql buildUrl --- hugegraph-loader/assembly/travis/install-mysql.sh | 4 ++-- .../apache/hugegraph/loader/source/jdbc/JDBCVendor.java | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hugegraph-loader/assembly/travis/install-mysql.sh b/hugegraph-loader/assembly/travis/install-mysql.sh index 934cdbbbb..779fb2f0c 100755 --- a/hugegraph-loader/assembly/travis/install-mysql.sh +++ b/hugegraph-loader/assembly/travis/install-mysql.sh @@ -31,8 +31,8 @@ DB_NAME="${1:-mysql}" DB_PASS="${2:-root}" # Skip if MySQL is already running (e.g., provided by GitHub Actions service) -if docker ps --format '{{.Names}}' | grep -qx "${DB_NAME}"; then - echo "MySQL container ${DB_NAME} is already running, skipping setup." +if (echo >/dev/tcp/localhost/3306) >/dev/null 2>&1; then + echo "MySQL is already reachable on port 3306, skipping setup." exit 0 fi diff --git a/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java b/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java index 6433bc3a4..a9a84eedf 100644 --- a/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java +++ b/hugegraph-loader/src/main/java/org/apache/hugegraph/loader/source/jdbc/JDBCVendor.java @@ -53,6 +53,11 @@ public String checkSchema(JDBCSource source) { return super.checkSchema(source); } + @Override + public String buildUrl(JDBCSource source) { + return super.buildUrl(source) + "&allowPublicKeyRetrieval=true"; + } + @Override public String buildGetHeaderSql(JDBCSource source) { return String.format("SELECT COLUMN_NAME " + @@ -305,8 +310,7 @@ public String buildUrl(JDBCSource source) { .setParameter("characterEncoding", Constants.CHARSET.name()) .setParameter("rewriteBatchedStatements", "true") .setParameter("useServerPrepStmts", "false") - .setParameter("autoReconnect", "true") - .setParameter("allowPublicKeyRetrieval", "true"); + .setParameter("autoReconnect", "true"); return JDBC_PREFIX + uriBuilder; }