This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new abe1185d28 [Improvement-16635] Using Docker Hub in Schema Check CI
(#16636)
abe1185d28 is described below
commit abe1185d2895edf474591ca2c638bbfbebccd4e7
Author: xiangzihao <[email protected]>
AuthorDate: Sun Sep 22 10:45:05 2024 +0800
[Improvement-16635] Using Docker Hub in Schema Check CI (#16636)
---
.github/workflows/backend.yml | 38 +---------------------
.../schema-check/mysql/docker-compose-base.yaml | 6 ++++
.../workflows/schema-check/mysql/running-test.sh | 9 ++++-
.github/workflows/schema-check/mysql/start-job.sh | 21 +++---------
.../postgresql/docker-compose-base.yaml | 6 ++++
.../schema-check/postgresql/running-test.sh | 8 ++++-
.../workflows/schema-check/postgresql/start-job.sh | 14 ++------
7 files changed, 34 insertions(+), 68 deletions(-)
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index ab336eefea..e7b282a29c 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -124,39 +124,9 @@ jobs:
- name: Running cluster test
run: |
/bin/bash ${{ matrix.case.script }}
- schema-check-prepare:
- name: schema-check-prepare-${{ matrix.version }}
- needs: paths-filter
- runs-on: ubuntu-latest
- timeout-minutes: 30
- strategy:
- fail-fast: false
- matrix:
- version: [ "3.1.9", "3.2.0" ]
- steps:
- - uses: actions/cache/restore@v4
- name: Download Binary Package Cache
- with:
- path: /tmp/${{ matrix.version }}
- key: apache-dolphinscheduler-${{ matrix.version }}-bin
- restore-keys: apache-dolphinscheduler-${{ matrix.version }}-bin
- - name: Download Binary Package if not cached
- run: |
- if [ ! -f /tmp/${{ matrix.version }}/apache-dolphinscheduler-${{
matrix.version }}-bin.tar.gz ]; then
- echo "Binary package not found in cache, downloading..."
- mkdir -p /tmp/${{ matrix.version }}
- wget
https://mirrors.tuna.tsinghua.edu.cn/apache/dolphinscheduler/${{ matrix.version
}}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -P /tmp/${{
matrix.version }}
- else
- echo "Binary package found in cache, skipping download."
- fi
- - uses: actions/cache/save@v4
- name: Upload Binary Package Cache
- with:
- path: /tmp/${{ matrix.version }}
- key: apache-dolphinscheduler-${{ matrix.version }}-bin
schema-check:
name: ${{ matrix.case.name }}-${{ matrix.version }}
- needs: [ build, schema-check-prepare]
+ needs: [ build ]
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
@@ -181,12 +151,6 @@ jobs:
with:
name: binary-package-8
path: ds_schema_check_test/dev
- - uses: actions/cache/restore@v4
- name: Download Binary Package Cache
- with:
- path: /tmp/${{ matrix.version }}
- key: apache-dolphinscheduler-${{ matrix.version }}-bin
- restore-keys: apache-dolphinscheduler-${{ matrix.version }}-bin
- name: Running Schema Check
run: |
/bin/bash ${{ matrix.case.script }} ${{ matrix.version }}
diff --git a/.github/workflows/schema-check/mysql/docker-compose-base.yaml
b/.github/workflows/schema-check/mysql/docker-compose-base.yaml
index d515a91762..4223f99fda 100644
--- a/.github/workflows/schema-check/mysql/docker-compose-base.yaml
+++ b/.github/workflows/schema-check/mysql/docker-compose-base.yaml
@@ -28,8 +28,14 @@ services:
MYSQL_DATABASE: dolphinscheduler_dev
ports:
- "3306:3306"
+ networks:
+ - schema-test
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u root
--password=$$MYSQL_ROOT_PASSWORD
interval: 5s
timeout: 60s
retries: 120
+
+networks:
+ schema-test:
+ name: schema-test
diff --git a/.github/workflows/schema-check/mysql/running-test.sh
b/.github/workflows/schema-check/mysql/running-test.sh
index 72e2fb3b6a..cc0197b9f0 100644
--- a/.github/workflows/schema-check/mysql/running-test.sh
+++ b/.github/workflows/schema-check/mysql/running-test.sh
@@ -29,8 +29,15 @@ export SPRING_DATASOURCE_PASSWORD="mysql"
bash ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
# Install the target version schema and upgrade it
+docker run -v
"./ds_schema_check_test/mysql-connector-java-8.0.16.jar:/opt/dolphinscheduler/tools/libs/mysql-connector-java-8.0.16.jar"
\
+--network schema-test apache/dolphinscheduler-tools:${DS_VERSION} -c \
+'export DATABASE="mysql"; \
+export SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.mysql.cj.jdbc.Driver"; \
+export SPRING_DATASOURCE_USERNAME="root"; \
+export SPRING_DATASOURCE_PASSWORD="mysql"; \
+export
SPRING_DATASOURCE_URL='jdbc:mysql://mysql:3306/dolphinscheduler_${DATABASE_VERSION}?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false';
\
+bash tools/bin/upgrade-schema.sh'
export
SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler_${DATABASE_VERSION}?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
-bash ds_schema_check_test/${DS_VERSION}/tools/bin/upgrade-schema.sh
bash ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
# Compare the schema
diff --git a/.github/workflows/schema-check/mysql/start-job.sh
b/.github/workflows/schema-check/mysql/start-job.sh
index 852c7f8a0e..79f2b28c83 100644
--- a/.github/workflows/schema-check/mysql/start-job.sh
+++ b/.github/workflows/schema-check/mysql/start-job.sh
@@ -21,35 +21,22 @@ DS_VERSION=$1
DATABASE_VERSION=${DS_VERSION//\./}
# Install Atlas and Create Dir
-mkdir -p ds_schema_check_test/dev ds_schema_check_test/${DS_VERSION}
+mkdir -p ds_schema_check_test/dev
curl -sSf https://atlasgo.sh | sh
# Preparing the environment
-if [ ! -f /tmp/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
]; then
- wget
https://archive.apache.org/dist/dolphinscheduler/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
-P ds_schema_check_test/${DS_VERSION}
-else
- mv /tmp/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
ds_schema_check_test/${DS_VERSION}
-fi
-tar -xzf
ds_schema_check_test/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
-C ds_schema_check_test/${DS_VERSION} --strip-components 1
+docker pull apache/dolphinscheduler-tools:${DS_VERSION}
tar -xzf ds_schema_check_test/dev/apache-dolphinscheduler-*-bin.tar.gz -C
ds_schema_check_test/dev --strip-components 1
-if [[ $DATABASE_VERSION -lt 300 ]]; then
- chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
ds_schema_check_test/${DS_VERSION}/script/create-dolphinscheduler.sh
-else
- chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
ds_schema_check_test/${DS_VERSION}/tools/bin/upgrade-schema.sh
-fi
+chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
MYSQL_JDBC_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
MYSQL_JDBC_JAR="mysql-connector-java-8.0.16.jar"
wget ${MYSQL_JDBC_URL} -O ds_schema_check_test/${MYSQL_JDBC_JAR}
-for base_dir in ds_schema_check_test/dev ds_schema_check_test/${DS_VERSION}; do
- if [[ $base_dir == *"dolphinscheduler/2"* ]]; then
- cp ds_schema_check_test/${MYSQL_JDBC_JAR} ${base_dir}/lib
- else
+for base_dir in ds_schema_check_test/dev; do
for d in alert-server api-server master-server worker-server tools; do
cp ds_schema_check_test/${MYSQL_JDBC_JAR} ${base_dir}/${d}/libs
done
- fi
done
docker compose -f
.github/workflows/schema-check/mysql/docker-compose-base.yaml up -d --wait
docker exec -i mysql mysql -uroot -pmysql -e "create database
dolphinscheduler_${DATABASE_VERSION}";
diff --git a/.github/workflows/schema-check/postgresql/docker-compose-base.yaml
b/.github/workflows/schema-check/postgresql/docker-compose-base.yaml
index 9f09f0d326..1bcae2fbaf 100644
--- a/.github/workflows/schema-check/postgresql/docker-compose-base.yaml
+++ b/.github/workflows/schema-check/postgresql/docker-compose-base.yaml
@@ -27,8 +27,14 @@ services:
POSTGRES_DB: dolphinscheduler_dev
ports:
- "5432:5432"
+ networks:
+ - schema-test
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 60s
retries: 120
+
+networks:
+ schema-test:
+ name: schema-test
diff --git a/.github/workflows/schema-check/postgresql/running-test.sh
b/.github/workflows/schema-check/postgresql/running-test.sh
index 0118ca2477..889097f3fe 100644
--- a/.github/workflows/schema-check/postgresql/running-test.sh
+++ b/.github/workflows/schema-check/postgresql/running-test.sh
@@ -29,8 +29,14 @@ export
SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_
bash ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
# Install the target version schema and upgrade it
+docker run --network schema-test apache/dolphinscheduler-tools:${DS_VERSION}
-c \
+'export DATABASE="postgresql"; \
+export SPRING_DATASOURCE_DRIVER_CLASS_NAME="org.postgresql.Driver"; \
+export SPRING_DATASOURCE_USERNAME="postgres"; \
+export SPRING_DATASOURCE_PASSWORD="postgres"; \
+export
SPRING_DATASOURCE_URL='jdbc:postgresql://postgres:5432/dolphinscheduler_${DATABASE_VERSION}';
\
+bash tools/bin/upgrade-schema.sh'
export
SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_${DATABASE_VERSION}"
-bash ds_schema_check_test/${DS_VERSION}/tools/bin/upgrade-schema.sh
bash ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
# Compare the schema
diff --git a/.github/workflows/schema-check/postgresql/start-job.sh
b/.github/workflows/schema-check/postgresql/start-job.sh
index 26308923e2..cf46dcd6f9 100644
--- a/.github/workflows/schema-check/postgresql/start-job.sh
+++ b/.github/workflows/schema-check/postgresql/start-job.sh
@@ -21,23 +21,13 @@ DS_VERSION=$1
DATABASE_VERSION=${DS_VERSION//\./}
# Install Atlas and Create Dir
-mkdir -p ds_schema_check_test/dev ds_schema_check_test/${DS_VERSION}
+mkdir -p ds_schema_check_test/dev
curl -sSf https://atlasgo.sh | sh
# Preparing the environment
-if [ ! -f /tmp/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
]; then
- wget
https://archive.apache.org/dist/dolphinscheduler/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
-P ds_schema_check_test/${DS_VERSION}
-else
- mv /tmp/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
ds_schema_check_test/${DS_VERSION}
-fi
-tar -xzf
ds_schema_check_test/${DS_VERSION}/apache-dolphinscheduler-${DS_VERSION}-bin.tar.gz
-C ds_schema_check_test/${DS_VERSION} --strip-components 1
tar -xzf ds_schema_check_test/dev/apache-dolphinscheduler-*-bin.tar.gz -C
ds_schema_check_test/dev --strip-components 1
-if [[ $DATABASE_VERSION -lt 300 ]]; then
- chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
ds_schema_check_test/${DS_VERSION}/script/create-dolphinscheduler.sh
-else
- chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
ds_schema_check_test/${DS_VERSION}/tools/bin/upgrade-schema.sh
-fi
+chmod +x ds_schema_check_test/dev/tools/bin/upgrade-schema.sh
docker compose -f
.github/workflows/schema-check/postgresql/docker-compose-base.yaml up -d --wait
docker exec -i postgres psql -U postgres -c "create database
dolphinscheduler_${DATABASE_VERSION}";