This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new a091fb1618 docker and jenkins test cleanup, #2548 (#3875)
a091fb1618 is described below
commit a091fb1618a6b9da1327471c7e617b45089ec2d7
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Fri Apr 26 16:20:29 2024 +0200
docker and jenkins test cleanup, #2548 (#3875)
---
Jenkinsfile.daily | 22 +++++------
docker/integration-tests/Dockerfile.unit-tests | 16 ++++----
.../integration-tests/integration-tests-azure.yaml | 1 -
.../integration-tests-base-spark.yaml | 1 -
.../integration-tests/integration-tests-base.yaml | 1 -
.../integration-tests-cassandra.yaml | 1 -
.../integration-tests-database.yaml | 1 -
.../integration-tests/integration-tests-flink.yaml | 1 -
.../integration-tests-hop_server.yaml | 1 -
.../integration-tests/integration-tests-http.yaml | 1 -
.../integration-tests/integration-tests-kafka.yaml | 1 -
.../integration-tests/integration-tests-mail.yaml | 1 -
.../integration-tests-monetdb.yaml | 1 -
.../integration-tests/integration-tests-mongo.yaml | 1 -
.../integration-tests/integration-tests-neo4j.yaml | 1 -
.../integration-tests/integration-tests-snmp.yaml | 1 -
.../integration-tests/integration-tests-spark.yaml | 1 -
.../integration-tests-vertica.yaml | 1 -
.../integration-tests/integration-tests-xml.yaml | 1 -
integration-tests/scripts/run-tests-docker.sh | 46 ++++++++++++----------
20 files changed, 44 insertions(+), 57 deletions(-)
diff --git a/Jenkinsfile.daily b/Jenkinsfile.daily
index 20f1b7179a..15ed9cc762 100644
--- a/Jenkinsfile.daily
+++ b/Jenkinsfile.daily
@@ -85,17 +85,17 @@ pipeline {
sh "mvn $MAVEN_PARAMS clean install"
}
}
- stage('Code Quality') {
- tools{
- jdk 'jdk_17_latest'
- }
- steps {
- echo 'Checking Code Quality on SonarCloud'
- withCredentials([string(credentialsId:
'sonarcloud-key-apache-hop', variable: 'SONAR_TOKEN')]) {
- sh 'mvn sonar:sonar -Dsonar.host.url=https://sonarcloud.io
-Dsonar.organization=apache -Dsonar.projectKey=apache_hop
-Dsonar.branch.name=${BRANCH_NAME} -Dsonar.login=${SONAR_TOKEN}'
- }
- }
- }
+ // stage('Code Quality') {
+ // tools{
+ // jdk 'jdk_17_latest'
+ // }
+ // steps {
+ // echo 'Checking Code Quality on SonarCloud'
+ // withCredentials([string(credentialsId:
'sonarcloud-key-apache-hop', variable: 'SONAR_TOKEN')]) {
+ // sh 'mvn sonar:sonar
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_hop -Dsonar.branch.name=${BRANCH_NAME}
-Dsonar.login=${SONAR_TOKEN}'
+ // }
+ // }
+ // }
stage('Create Docker image & Run Tests'){
steps {
sh 'cp $GCP_CREDS google-key-apache-hop-it.json'
diff --git a/docker/integration-tests/Dockerfile.unit-tests
b/docker/integration-tests/Dockerfile.unit-tests
index 8820545133..e1a652864e 100644
--- a/docker/integration-tests/Dockerfile.unit-tests
+++ b/docker/integration-tests/Dockerfile.unit-tests
@@ -16,7 +16,7 @@
#
FROM ubuntu:22.04
-MAINTAINER Apache Hop
+LABEL maintainer="Apache Hop Team"
# Argument Branch name, used to download correct version
ARG BRANCH_NAME
@@ -53,6 +53,7 @@ RUN apt-get update \
unzip \
ttf-mscorefonts-installer \
locales \
+ && apt-get clean \
&& mkdir ${VOLUME_MOUNT_POINT} \
&& addgroup -gid ${JENKINS_GID} ${JENKINS_GROUP} \
&& useradd -m -d /home/${JENKINS_USER} -u ${JENKINS_UID} -g
${JENKINS_GROUP} ${JENKINS_USER} \
@@ -72,22 +73,19 @@ RUN pip3 install parquet-tools
# Copy the hop package from the local resources folder to the container image
directory
-COPY --chown=${JENKINS_USER}:${JENKINS_GROUP} ./assemblies/client/target/hop-*
${DEPLOYMENT_PATH}/hop.zip
+COPY --chown=${JENKINS_USER}:${JENKINS_GROUP} ./assemblies/client/target/hop
${DEPLOYMENT_PATH}/hop
# Copy gcp key
COPY --chown=${JENKINS_USER}:${JENKINS_GROUP} ${GCP_KEY_FILE}
/tmp/google-key-apache-hop-it.json
# Unzip and install in correct location
-RUN unzip -q ${DEPLOYMENT_PATH}/hop.zip -d ${DEPLOYMENT_PATH} \
- && rm ${DEPLOYMENT_PATH}/hop.zip \
- && chown -R ${JENKINS_USER}:${JENKINS_GROUP} ${DEPLOYMENT_PATH}/hop \
+RUN chown -R ${JENKINS_USER}:${JENKINS_GROUP} ${DEPLOYMENT_PATH}/hop \
&& chmod 700 ${DEPLOYMENT_PATH}/hop/*.sh \
&& cd ${DEPLOYMENT_PATH}/hop \
- && ./hop-conf.sh --generate-fat-jar=/tmp/hop-fatjar.jar
-
-# Download the Vertica JDBC driver
-RUN wget -c
https://repo1.maven.org/maven2/com/vertica/jdbc/vertica-jdbc/23.4.0-0/vertica-jdbc-23.4.0-0.jar
-O /opt/hop/lib/jdbc/vertica-jdbc-23.4.0-0.jar
+ && ./hop-conf.sh --generate-fat-jar=/tmp/hop-fatjar.jar \
+ # Download the Vertica JDBC driver
+ && wget -c
https://repo1.maven.org/maven2/com/vertica/jdbc/vertica-jdbc/23.4.0-0/vertica-jdbc-23.4.0-0.jar
-O /opt/hop/lib/jdbc/vertica-jdbc-23.4.0-0.jar
# make volume available so that hop pipeline and workflow files can be
provided easily
VOLUME ["/files"]
diff --git a/docker/integration-tests/integration-tests-azure.yaml
b/docker/integration-tests/integration-tests-azure.yaml
index 57e2bc8ca5..a6c34edbb7 100644
--- a/docker/integration-tests/integration-tests-azure.yaml
+++ b/docker/integration-tests/integration-tests-azure.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: "2.4"
services:
integration_test_azure:
extends:
diff --git a/docker/integration-tests/integration-tests-base-spark.yaml
b/docker/integration-tests/integration-tests-base-spark.yaml
index d6de110931..599ed550ed 100644
--- a/docker/integration-tests/integration-tests-base-spark.yaml
+++ b/docker/integration-tests/integration-tests-base-spark.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test:
build:
diff --git a/docker/integration-tests/integration-tests-base.yaml
b/docker/integration-tests/integration-tests-base.yaml
index a6a4b53e41..02e4d893bf 100644
--- a/docker/integration-tests/integration-tests-base.yaml
+++ b/docker/integration-tests/integration-tests-base.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test:
image: hop-base-image
diff --git a/docker/integration-tests/integration-tests-cassandra.yaml
b/docker/integration-tests/integration-tests-cassandra.yaml
index 918b739d9c..38f6c13600 100644
--- a/docker/integration-tests/integration-tests-cassandra.yaml
+++ b/docker/integration-tests/integration-tests-cassandra.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_cassandra:
extends:
diff --git a/docker/integration-tests/integration-tests-database.yaml
b/docker/integration-tests/integration-tests-database.yaml
index 2aa1f4e28e..9df8e62398 100644
--- a/docker/integration-tests/integration-tests-database.yaml
+++ b/docker/integration-tests/integration-tests-database.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_database:
extends:
diff --git a/docker/integration-tests/integration-tests-flink.yaml
b/docker/integration-tests/integration-tests-flink.yaml
index ae6eddb5ee..72db39efd7 100644
--- a/docker/integration-tests/integration-tests-flink.yaml
+++ b/docker/integration-tests/integration-tests-flink.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_flink:
extends:
diff --git a/docker/integration-tests/integration-tests-hop_server.yaml
b/docker/integration-tests/integration-tests-hop_server.yaml
index e6a3156324..21999d3653 100644
--- a/docker/integration-tests/integration-tests-hop_server.yaml
+++ b/docker/integration-tests/integration-tests-hop_server.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_hop_server:
extends:
diff --git a/docker/integration-tests/integration-tests-http.yaml
b/docker/integration-tests/integration-tests-http.yaml
index 082fdf7c11..b589cc7fef 100644
--- a/docker/integration-tests/integration-tests-http.yaml
+++ b/docker/integration-tests/integration-tests-http.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_http:
extends:
diff --git a/docker/integration-tests/integration-tests-kafka.yaml
b/docker/integration-tests/integration-tests-kafka.yaml
index 27a034dbeb..f033c1c78d 100644
--- a/docker/integration-tests/integration-tests-kafka.yaml
+++ b/docker/integration-tests/integration-tests-kafka.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_kafka:
extends:
diff --git a/docker/integration-tests/integration-tests-mail.yaml
b/docker/integration-tests/integration-tests-mail.yaml
index 43359bf5ed..87e3a08ca4 100644
--- a/docker/integration-tests/integration-tests-mail.yaml
+++ b/docker/integration-tests/integration-tests-mail.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_mail:
extends:
diff --git a/docker/integration-tests/integration-tests-monetdb.yaml
b/docker/integration-tests/integration-tests-monetdb.yaml
index 56ca6049c5..2f5188637e 100644
--- a/docker/integration-tests/integration-tests-monetdb.yaml
+++ b/docker/integration-tests/integration-tests-monetdb.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_monetdb:
extends:
diff --git a/docker/integration-tests/integration-tests-mongo.yaml
b/docker/integration-tests/integration-tests-mongo.yaml
index 1c198d0bfb..9d5951e57b 100644
--- a/docker/integration-tests/integration-tests-mongo.yaml
+++ b/docker/integration-tests/integration-tests-mongo.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '3.5'
services:
integration_test_mongo:
extends:
diff --git a/docker/integration-tests/integration-tests-neo4j.yaml
b/docker/integration-tests/integration-tests-neo4j.yaml
index c00a4f9f68..21f77e39c5 100644
--- a/docker/integration-tests/integration-tests-neo4j.yaml
+++ b/docker/integration-tests/integration-tests-neo4j.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_neo4j:
extends:
diff --git a/docker/integration-tests/integration-tests-snmp.yaml
b/docker/integration-tests/integration-tests-snmp.yaml
index e54150af1c..989a8b2b03 100644
--- a/docker/integration-tests/integration-tests-snmp.yaml
+++ b/docker/integration-tests/integration-tests-snmp.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_snmp:
extends:
diff --git a/docker/integration-tests/integration-tests-spark.yaml
b/docker/integration-tests/integration-tests-spark.yaml
index 88b1779490..36701d1050 100644
--- a/docker/integration-tests/integration-tests-spark.yaml
+++ b/docker/integration-tests/integration-tests-spark.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_spark:
extends:
diff --git a/docker/integration-tests/integration-tests-vertica.yaml
b/docker/integration-tests/integration-tests-vertica.yaml
index f0a90018bc..b6301cacec 100644
--- a/docker/integration-tests/integration-tests-vertica.yaml
+++ b/docker/integration-tests/integration-tests-vertica.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '3.4'
services:
integration_test_vertica:
extends:
diff --git a/docker/integration-tests/integration-tests-xml.yaml
b/docker/integration-tests/integration-tests-xml.yaml
index e467362d78..3026a0a1ba 100644
--- a/docker/integration-tests/integration-tests-xml.yaml
+++ b/docker/integration-tests/integration-tests-xml.yaml
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-version: '2.4'
services:
integration_test_xml:
extends:
diff --git a/integration-tests/scripts/run-tests-docker.sh
b/integration-tests/scripts/run-tests-docker.sh
index a0b448b9f7..9a8f843e77 100755
--- a/integration-tests/scripts/run-tests-docker.sh
+++ b/integration-tests/scripts/run-tests-docker.sh
@@ -20,6 +20,7 @@
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
DOCKER_FILES_DIR="$(cd ${CURRENT_DIR}/../../docker/integration-tests/ && pwd)"
+EXECUTED_COMPOSE_FILES=("${DOCKER_FILES_DIR}/integration-tests-base.yaml")
for ARGUMENT in "$@"; do
@@ -71,20 +72,22 @@ if [ -z "${KEEP_IMAGES}" ]; then
KEEP_IMAGES="false"
fi
-#Cleanup surefire reports
+# Cleanup surefire reports
rm -rf "${CURRENT_DIR}"/../surefire-reports
mkdir -p "${CURRENT_DIR}"/../surefire-reports/
-#Build base image only once
- docker compose -f ${DOCKER_FILES_DIR}/integration-tests-base.yaml build
--build-arg JENKINS_USER=${JENKINS_USER} --build-arg JENKINS_UID=${JENKINS_UID}
--build-arg JENKINS_GROUP=${JENKINS_GROUP} --build-arg
JENKINS_GID=${JENKINS_GID} --build-arg GCP_KEY_FILE=${GCP_KEY_FILE}
+# Unzip Hop
+unzip -o -q "${CURRENT_DIR}/../../assemblies/client/target/*.zip" -d
${CURRENT_DIR}/../../assemblies/client/target/
+# Build base image only once
+#docker compose -f ${DOCKER_FILES_DIR}/integration-tests-base.yaml build
--build-arg JENKINS_USER=${JENKINS_USER} --build-arg JENKINS_UID=${JENKINS_UID}
--build-arg JENKINS_GROUP=${JENKINS_GROUP} --build-arg
JENKINS_GID=${JENKINS_GID} --build-arg GCP_KEY_FILE=${GCP_KEY_FILE}
-#Loop over project folders
+# Loop over project folders
for d in "${CURRENT_DIR}"/../${PROJECT_NAME}/; do
+
if [[ "$d" != *"scripts/" ]] && [[ "$d" != *"surefire-reports/" ]] && [[
"$d" != *"hopweb/" ]]; then
# If there is a file called disabled.txt the project is disabled
- #
if [ ! -f "$d/disabled.txt" ]; then
PROJECT_NAME=$(basename $d)
@@ -93,44 +96,47 @@ for d in "${CURRENT_DIR}"/../${PROJECT_NAME}/; do
echo "project path: $d"
echo "docker compose path: ${DOCKER_FILES_DIR}"
- #Check if specific compose exists
+ # Check if specific compose exists
if [ -f "${DOCKER_FILES_DIR}/integration-tests-${PROJECT_NAME}.yaml" ];
then
echo "Project compose exists."
- PROJECT_NAME=${PROJECT_NAME} docker compose -f
${DOCKER_FILES_DIR}/integration-tests-${PROJECT_NAME}.yaml up
--abort-on-container-exit
+ EXECUTED_COMPOSE_FILES=("${EXECUTED_COMPOSE_FILES[@]}"
"${DOCKER_FILES_DIR}/integration-tests-${PROJECT_NAME}.yaml")
+ #PROJECT_NAME=${PROJECT_NAME} docker compose -f
${DOCKER_FILES_DIR}/integration-tests-${PROJECT_NAME}.yaml up
--abort-on-container-exit
else
echo "Project compose does not exists."
- PROJECT_NAME=${PROJECT_NAME} docker compose -f
${DOCKER_FILES_DIR}/integration-tests-base.yaml up --abort-on-container-exit
+ #PROJECT_NAME=${PROJECT_NAME} docker compose -f
${DOCKER_FILES_DIR}/integration-tests-base.yaml up --abort-on-container-exit
fi
fi
fi
- #create final report
+ # Create final report
if [ "${SUREFIRE_REPORT}" == "true" ]; then
- if [ ! -f
"${CURRENT_DIR}/../surefire-reports/surefile_${PROJECT_NAME}.xml" ]; then
- echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
- echo "<testsuite
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:noNamespaceSchemaLocation=\"https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd\"
version=\"3.0\" name=\"${PROJECT_NAME}\" time=\"0\" tests=\"0\" errors=\"0\"
skipped=\"0\" failures=\"0\">"
>>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
- echo "</testsuite>"
>>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
+ if [ ! -f
"${CURRENT_DIR}/../surefire-reports/surefile_${PROJECT_NAME}.xml" ]; then
+ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
+ echo "<testsuite xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:noNamespaceSchemaLocation=\"https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd\"
version=\"3.0\" name=\"${PROJECT_NAME}\" time=\"0\" tests=\"1\" errors=\"1\"
skipped=\"0\" failures=\"0\">"
>>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
+ echo "<testcase name=\"environment_setup\" time=\"1\"><failure
type=\"could not start\"></failure><system-out><![CDATA[ Could not start docker
environment ]]></system-out><system-err><![CDATA[ Could not start docker
environment ]]></system-err></testcase>"
>>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
+ echo "</testsuite>"
>>"${CURRENT_DIR}"/../surefire-reports/surefile_${PROJECT_NAME}.xml
fi
fi
done
echo "Keep images value: ${KEEP_IMAGES}"
-#Cleanup all images
+# Cleanup all images
if [ ! "${KEEP_IMAGES}" == "true" ]; then
- for d in ${DOCKER_FILES_DIR}/integration-tests-*.yaml; do
- docker compose -f $d down --rmi all --remove-orphans
+ for d in "${EXECUTED_COMPOSE_FILES[@]}"; do
+ echo "Removing: " $d
+ PROJECT_NAME="" docker compose -f $d down --rmi all --remove-orphans
done
fi
-#Print Final Results
+# Print Final Results
if [ -f "${CURRENT_DIR}/../surefire-reports/passed_tests" ]; then
echo -e "\033[1;32mPassed tests:"
PASSED_TESTS="$(cat ../surefire-reports/passed_tests)"
echo -e "\033[1;32m${PASSED_TESTS}"
fi
if [ -f "${CURRENT_DIR}/../surefire-reports/failed_tests" ]; then
- echo -e "\033[1;91mFailed tests:"
- FAILED_TESTS="$(cat ../surefire-reports/failed_tests)"
- echo -e "\033[1;91m${FAILED_TESTS}"
+ echo -e "\033[1;91mFailed tests:"
+ FAILED_TESTS="$(cat ../surefire-reports/failed_tests)"
+ echo -e "\033[1;91m${FAILED_TESTS}"
fi