You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zh...@apache.org on 2022/05/25 15:45:04 UTC
[dolphinscheduler] 01/08: [Feature-10034][CI] Add postgresql cluster test in CI (#10035)
This is an automated email from the ASF dual-hosted git repository.
zhongjiajie pushed a commit to branch 3.0.0-beta-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
commit b2058f953266c3c88fa7f6c6009b831a14f29380
Author: xiangzihao <46...@qq.com>
AuthorDate: Sun May 15 13:04:48 2022 +0800
[Feature-10034][CI] Add postgresql cluster test in CI (#10035)
* add postgresql cluster test
* add postgresql cluster test
* add postgresql cluster test
* add postgresql cluster test
(cherry picked from commit 2423fa50f7d08538630929fee004a858c95ed38d)
---
.github/workflows/backend.yml | 17 +++--
.../cluster-test/mysql/docker-compose-cluster.yaml | 2 +-
.../{docker-compose-cluster.yaml => start-job.sh} | 25 ++++---
.../workflows/cluster-test/postgresql/Dockerfile | 38 ++++++++++
.../deploy.sh} | 34 ++++++---
.../postgresql/docker-compose-base.yaml | 65 +++++++++++++++++
.../docker-compose-cluster.yaml | 2 +-
.../postgresql/dolphinscheduler_env.sh | 48 +++++++++++++
.../cluster-test/postgresql/install_env.sh | 61 ++++++++++++++++
.../cluster-test/postgresql/running_test.sh | 81 ++++++++++++++++++++++
.../start-job.sh} | 25 ++++---
11 files changed, 356 insertions(+), 42 deletions(-)
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index 502ae4c62f..85670724a7 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -85,10 +85,17 @@ jobs:
path: ./dolphinscheduler-dist/target/apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz
retention-days: 1
cluster-test:
- name: Cluster-Test
+ name: ${{ matrix.case.name }}
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
+ strategy:
+ matrix:
+ case:
+ - name: cluster-test-mysql
+ script: .github/workflows/cluster-test/mysql/start-job.sh
+ - name: cluster-test-postgresql
+ script: .github/workflows/cluster-test/postgresql/start-job.sh
steps:
- uses: actions/checkout@v2
with:
@@ -98,13 +105,9 @@ jobs:
with:
name: binary-package
path: ./
- - name: Running cluster test(Mysql)
+ - name: Running cluster test
run: |
- docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-base.yaml up -d
- docker build -t jdk8:ds_cluster -f .github/workflows/cluster-test/mysql/Dockerfile .
- docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml up -d
- /bin/bash .github/workflows/cluster-test/mysql/running_test.sh
- docker rm -f $(docker ps -aq)
+ /bin/bash ${{ matrix.case.script }}
result:
name: Build
runs-on: ubuntu-latest
diff --git a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml b/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
index 1b2d9e91ab..7343c8eee7 100644
--- a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
+++ b/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
@@ -20,7 +20,7 @@ version: "3"
services:
ds:
container_name: ds
- image: jdk8:ds_cluster
+ image: jdk8:ds_mysql_cluster
restart: always
ports:
- "12345:12345"
diff --git a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml b/.github/workflows/cluster-test/mysql/start-job.sh
similarity index 61%
copy from .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
copy to .github/workflows/cluster-test/mysql/start-job.sh
index 1b2d9e91ab..fc5f006a16 100644
--- a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
+++ b/.github/workflows/cluster-test/mysql/start-job.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
@@ -15,15 +16,17 @@
# limitations under the License.
#
-version: "3"
+#Start base service containers
+docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-base.yaml up -d
-services:
- ds:
- container_name: ds
- image: jdk8:ds_cluster
- restart: always
- ports:
- - "12345:12345"
- - "5679:5679"
- - "1235:1235"
- - "50053:50053"
+#Build ds mysql cluster image
+docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql/Dockerfile .
+
+#Start ds mysql cluster container
+docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml up -d
+
+#Running tests
+/bin/bash .github/workflows/cluster-test/mysql/running_test.sh
+
+#Cleanup
+docker rm -f $(docker ps -aq)
diff --git a/.github/workflows/cluster-test/postgresql/Dockerfile b/.github/workflows/cluster-test/postgresql/Dockerfile
new file mode 100644
index 0000000000..2cb7e0f614
--- /dev/null
+++ b/.github/workflows/cluster-test/postgresql/Dockerfile
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+FROM openjdk:8-jre-slim-buster
+
+RUN apt update ; \
+ apt install -y curl wget sudo openssh-server netcat-traditional ;
+
+#COPY ./dolphinscheduler-dist/target/apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz /root/apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz
+COPY ./apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz /root/apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz
+RUN tar -zxvf /root/apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz -C ~
+
+ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-dev-SNAPSHOT-bin
+
+#Setting install.sh
+COPY .github/workflows/cluster-test/postgresql/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
+
+#Setting dolphinscheduler_env.sh
+COPY .github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
+
+#Deploy
+COPY .github/workflows/cluster-test/postgresql/deploy.sh /root/deploy.sh
+
+CMD [ "/bin/bash", "/root/deploy.sh" ]
diff --git a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml b/.github/workflows/cluster-test/postgresql/deploy.sh
similarity index 57%
copy from .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
copy to .github/workflows/cluster-test/postgresql/deploy.sh
index 1b2d9e91ab..abac95020d 100644
--- a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
+++ b/.github/workflows/cluster-test/postgresql/deploy.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
@@ -14,16 +15,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+set -euox pipefail
-version: "3"
-services:
- ds:
- container_name: ds
- image: jdk8:ds_cluster
- restart: always
- ports:
- - "12345:12345"
- - "5679:5679"
- - "1235:1235"
- - "50053:50053"
+USER=root
+DOLPHINSCHEDULER_HOME=/root/apache-dolphinscheduler-dev-SNAPSHOT-bin
+
+#Sudo
+sed -i '$a'$USER' ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
+sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
+
+#SSH
+ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
+cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
+chmod 600 ~/.ssh/authorized_keys
+service ssh start
+
+#Init schema
+/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/upgrade-schema.sh
+
+#Start Cluster
+/bin/bash $DOLPHINSCHEDULER_HOME/bin/start-all.sh
+
+#Keep running
+tail -f /dev/null
diff --git a/.github/workflows/cluster-test/postgresql/docker-compose-base.yaml b/.github/workflows/cluster-test/postgresql/docker-compose-base.yaml
new file mode 100644
index 0000000000..8cc7692d71
--- /dev/null
+++ b/.github/workflows/cluster-test/postgresql/docker-compose-base.yaml
@@ -0,0 +1,65 @@
+#
+# 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.
+#
+
+version: "3"
+
+services:
+ postgres:
+ container_name: postgres
+ image: postgres:14.1
+ restart: always
+ environment:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_DB: dolphinscheduler
+ ports:
+ - "5432:5432"
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
+ interval: 5s
+ timeout: 60s
+ retries: 120
+
+ zoo1:
+ image: zookeeper:3.8.0
+ restart: always
+ hostname: zoo1
+ ports:
+ - "2181:2181"
+ environment:
+ ZOO_MY_ID: 1
+ ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
+
+ zoo2:
+ image: zookeeper:3.8.0
+ restart: always
+ hostname: zoo2
+ ports:
+ - "2182:2181"
+ environment:
+ ZOO_MY_ID: 2
+ ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
+
+ zoo3:
+ image: zookeeper:3.8.0
+ restart: always
+ hostname: zoo3
+ ports:
+ - "2183:2181"
+ environment:
+ ZOO_MY_ID: 3
+ ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
+
diff --git a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml b/.github/workflows/cluster-test/postgresql/docker-compose-cluster.yaml
similarity index 96%
copy from .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
copy to .github/workflows/cluster-test/postgresql/docker-compose-cluster.yaml
index 1b2d9e91ab..9ab79ea44d 100644
--- a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
+++ b/.github/workflows/cluster-test/postgresql/docker-compose-cluster.yaml
@@ -20,7 +20,7 @@ version: "3"
services:
ds:
container_name: ds
- image: jdk8:ds_cluster
+ image: jdk8:ds_postgresql_cluster
restart: always
ports:
- "12345:12345"
diff --git a/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh b/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh
new file mode 100644
index 0000000000..9a6d9797e6
--- /dev/null
+++ b/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh
@@ -0,0 +1,48 @@
+#
+# 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.
+#
+
+# JAVA_HOME, will use it to start DolphinScheduler server
+export JAVA_HOME=${JAVA_HOME:-/usr/local/openjdk-8}
+
+# Database related configuration, set database type, username and password
+export DATABASE=${DATABASE:-postgresql}
+export SPRING_PROFILES_ACTIVE=${DATABASE}
+export SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
+export SPRING_DATASOURCE_URL="jdbc:postgresql://postgres:5432/dolphinscheduler"
+export SPRING_DATASOURCE_USERNAME=postgres
+export SPRING_DATASOURCE_PASSWORD=postgres
+
+# DolphinScheduler server related configuration
+export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
+export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
+export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
+
+# Registry center configuration, determines the type and link of the registry center
+export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
+export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
+
+# Tasks related configurations, need to change the configuration if you use the related tasks.
+export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
+export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
+export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
+export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
+export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
+export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
+export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
+export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
+
+export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
diff --git a/.github/workflows/cluster-test/postgresql/install_env.sh b/.github/workflows/cluster-test/postgresql/install_env.sh
new file mode 100644
index 0000000000..b7c9797e20
--- /dev/null
+++ b/.github/workflows/cluster-test/postgresql/install_env.sh
@@ -0,0 +1,61 @@
+#
+# 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.
+#
+
+# ---------------------------------------------------------
+# INSTALL MACHINE
+# ---------------------------------------------------------
+# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
+# including master, worker, api, alert. If you want to deploy in pseudo-distributed
+# mode, just write a pseudo-distributed hostname
+# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
+ips=${ips:-"localhost"}
+
+# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
+# modify it if you use different ssh port
+sshPort=${sshPort:-"22"}
+
+# A comma separated list of machine hostname or IP would be installed Master server, it
+# must be a subset of configuration `ips`.
+# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
+masters=${masters:-"localhost"}
+
+# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
+# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
+# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
+workers=${workers:-"localhost:default"}
+
+# A comma separated list of machine hostname or IP would be installed Alert server, it
+# must be a subset of configuration `ips`.
+# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
+alertServer=${alertServer:-"localhost"}
+
+# A comma separated list of machine hostname or IP would be installed API server, it
+# must be a subset of configuration `ips`.
+# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
+apiServers=${apiServers:-"localhost"}
+
+# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
+# Do not set this configuration same as the current path (pwd)
+installPath=${installPath:-"/root/apache-dolphinscheduler-dev-SNAPSHOT-bin"}
+
+# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
+# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
+# to be created by this user
+deployUser=${deployUser:-"dolphinscheduler"}
+
+# The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
+zkRoot=${zkRoot:-"/dolphinscheduler"}
diff --git a/.github/workflows/cluster-test/postgresql/running_test.sh b/.github/workflows/cluster-test/postgresql/running_test.sh
new file mode 100644
index 0000000000..c812d05402
--- /dev/null
+++ b/.github/workflows/cluster-test/postgresql/running_test.sh
@@ -0,0 +1,81 @@
+#!/bin/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 -x
+
+
+API_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:12345/dolphinscheduler/actuator/health"
+MASTER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:5679/actuator/health"
+WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:1235/actuator/health"
+
+#Cluster start health check
+TIMEOUT=120
+START_HEALTHCHECK_EXITCODE=0
+
+for ((i=1; i<=TIMEOUT; i++))
+do
+ MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
+ WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
+ API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
+ if [[ $MASTER_HTTP_STATUS -eq 200 && $WORKER_HTTP_STATUS -eq 200 && $API_HTTP_STATUS -eq 200 ]];then
+ START_HEALTHCHECK_EXITCODE=0
+ else
+ START_HEALTHCHECK_EXITCODE=2
+ fi
+
+ if [[ $START_HEALTHCHECK_EXITCODE -eq 0 ]];then
+ echo "cluster start health check success"
+ break
+ fi
+
+ if [[ $i -eq $TIMEOUT ]];then
+ docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-dev-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
+ echo "cluster start health check failed"
+ exit $START_HEALTHCHECK_EXITCODE
+ fi
+
+ sleep 1
+done
+
+#Stop Cluster
+docker exec -u root ds bash -c "/root/apache-dolphinscheduler-dev-SNAPSHOT-bin/bin/stop-all.sh"
+
+#Cluster stop health check
+sleep 5
+MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
+if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
+ echo "master stop health check success"
+else
+ echo "master stop health check failed"
+ exit 3
+fi
+
+WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
+if [[ $WORKER_HTTP_STATUS -ne 200 ]];then
+ echo "worker stop health check success"
+else
+ echo "worker stop health check failed"
+ exit 3
+fi
+
+API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
+if [[ $API_HTTP_STATUS -ne 200 ]];then
+ echo "api stop health check success"
+else
+ echo "api stop health check failed"
+ exit 3
+fi
diff --git a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml b/.github/workflows/cluster-test/postgresql/start-job.sh
similarity index 59%
copy from .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
copy to .github/workflows/cluster-test/postgresql/start-job.sh
index 1b2d9e91ab..cfd048ff24 100644
--- a/.github/workflows/cluster-test/mysql/docker-compose-cluster.yaml
+++ b/.github/workflows/cluster-test/postgresql/start-job.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
@@ -15,15 +16,17 @@
# limitations under the License.
#
-version: "3"
+#Start base service containers
+docker-compose -f .github/workflows/cluster-test/postgresql/docker-compose-base.yaml up -d
-services:
- ds:
- container_name: ds
- image: jdk8:ds_cluster
- restart: always
- ports:
- - "12345:12345"
- - "5679:5679"
- - "1235:1235"
- - "50053:50053"
+#Build ds postgresql cluster image
+docker build -t jdk8:ds_postgresql_cluster -f .github/workflows/cluster-test/postgresql/Dockerfile .
+
+#Start ds postgresql cluster container
+docker-compose -f .github/workflows/cluster-test/postgresql/docker-compose-cluster.yaml up -d
+
+#Running tests
+/bin/bash .github/workflows/cluster-test/postgresql/running_test.sh
+
+#Cleanup
+docker rm -f $(docker ps -aq)