From 5441ed82a852b36993e7bbb76bc6d4d2eefc9108 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Fri, 15 Jul 2022 00:18:49 +0800 Subject: [PATCH] chore(ci): improve script `integration_test` --- appveyor.yml | 2 +- scripts/integration_test | 153 ++++++++++++++++++++------------------- 2 files changed, 78 insertions(+), 77 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 1782e2069..57d66ae32 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -34,7 +34,7 @@ after_test: - rm -rf $HOME/.m2/repository/com/alibaba/cola - rm -rf $HOME/.m2/repository/com/alibaba/craftsman - rm -rf $HOME/.m2/repository/com/alibaba/demo - - rm -rf $HOME/.m2/repository/org/huawei/charge* + - rm -rf $HOME/.m2/repository/org/huawei/charg* # remove maven install files - rm -rf $HOME/.m2/wrapper/dists/*/*/*.zip # remove sdkman install files diff --git a/scripts/integration_test b/scripts/integration_test index 56b07faa8..1dc48eff8 100755 --- a/scripts/integration_test +++ b/scripts/integration_test @@ -29,8 +29,8 @@ source bash-buddy/lib/java_build_utils.sh # # shellcheck disable=SC2034 JVB_MVN_OPTS=( - "${JVB_DEFAULT_MVN_OPTS[@]}" - -DperformRelease -P'!gen-sign' + "${JVB_DEFAULT_MVN_OPTS[@]}" + -DperformRelease -P'!gen-sign' ) ################################################################################ @@ -40,78 +40,79 @@ JVB_MVN_OPTS=( cd .. extractFirstElementValueFromPom() { - (($# == 2)) || die "${FUNCNAME[0]} need only 2 arguments, actual arguments: $*" + (($# == 2)) || die "${FUNCNAME[0]} need only 2 arguments, actual arguments: $*" - local element=$1 - local pom_file=$2 - grep \<"$element"'>.* "$pom_file" | awk -F' 'NR==1 {print $2}' + local element=$1 + local pom_file=$2 + grep \<"$element"'>.* "$pom_file" | awk -F' 'NR==1 {print $2}' } test_cola_archetype() { - local bkp_mvn_opts=("${JVB_MVN_OPTS[@]}") + ( JVB_MVN_OPTS=("${JVB_DEFAULT_MVN_OPTS[@]}") - - ( - cu::head_line_echo "test archetype:generate by cola-framework-archetype-service" - - # NOTE: DO NOT declare archetypeVersion var as readonly, its value is supplied by subshell. - archetypeVersion=$(extractFirstElementValueFromPom version cola-archetypes/cola-archetype-service/pom.xml) - - # shellcheck disable=SC2030 - readonly demo_dir="cola-archetypes/target/cola-framework-archetype-service-demo" - rm -rf "$demo_dir" - mkdir -p "$demo_dir" - cd "$demo_dir" - - # shellcheck disable=SC2030 - readonly artifactId=demo-service - - jvb::mvn_cmd archetype:generate \ - -DgroupId=com.alibaba.cola.demo.archetype-service \ - -DartifactId="$artifactId" \ - -Dversion=1.0.0-SNAPSHOT \ - -Dpackage=com.alibaba.cola.demo.service \ - -DarchetypeGroupId=com.alibaba.cola \ - -DarchetypeArtifactId=cola-framework-archetype-service \ - -DarchetypeVersion="$archetypeVersion" \ - -DinteractiveMode=false \ - -DarchetypeCatalog=local - - cd "$artifactId" - jvb::mvn_cmd install - ) - - ( - cu::head_line_echo "test archetype:generate by cola-framework-archetype-web" - - # NOTE: DO NOT declare archetypeVersion var as readonly, its value is supplied by subshell. - archetypeVersion=$(extractFirstElementValueFromPom version cola-archetypes/cola-archetype-web/pom.xml) - - # shellcheck disable=SC2031 - readonly demo_dir="cola-archetypes/target/cola-framework-archetype-web-demo" - rm -rf "$demo_dir" - mkdir -p "$demo_dir" - cd "$demo_dir" - - # shellcheck disable=SC2031 - readonly artifactId=demo-web - - jvb::mvn_cmd archetype:generate \ - -DgroupId=com.alibaba.cola.demo.archetype-web \ - -DartifactId="$artifactId" \ - -Dversion=1.0.0-SNAPSHOT \ - -Dpackage=com.alibaba.cola.demo.web \ - -DarchetypeGroupId=com.alibaba.cola \ - -DarchetypeArtifactId=cola-framework-archetype-web \ - -DarchetypeVersion="$archetypeVersion" \ - -DinteractiveMode=false \ - -DarchetypeCatalog=local - - cd "$artifactId" - jvb::mvn_cmd install - ) - - JVB_MVN_OPTS=("${bkp_mvn_opts[@]}") + readonly archetype_name=cola-framework-archetype-service + + cu::head_line_echo "test archetype:generate by $archetype_name" + + # NOTE: DO NOT declare archetypeVersion var as readonly, its value is supplied by subshell. + archetypeVersion=$(extractFirstElementValueFromPom version cola-archetypes/cola-archetype-service/pom.xml) + + # shellcheck disable=SC2030 + readonly demo_dir="cola-archetypes/target/$archetype_name-demo" + rm -rf "$demo_dir" + mkdir -p "$demo_dir" + cd "$demo_dir" + + # shellcheck disable=SC2030 + readonly artifactId=demo-service + + jvb::mvn_cmd archetype:generate \ + -DgroupId=com.alibaba.cola.demo.archetype-service \ + -DartifactId="$artifactId" \ + -Dversion=1.0.0-SNAPSHOT \ + -Dpackage=com.alibaba.cola.demo.service \ + -DarchetypeGroupId=com.alibaba.cola \ + -DarchetypeArtifactId=$archetype_name \ + -DarchetypeVersion="$archetypeVersion" \ + -DinteractiveMode=false \ + -DarchetypeCatalog=local + + cd "$artifactId" + jvb::mvn_cmd install + ) + + ( + JVB_MVN_OPTS=("${JVB_DEFAULT_MVN_OPTS[@]}") + readonly archetype_name=cola-framework-archetype-web + + cu::head_line_echo "test archetype:generate by $archetype_name" + + # NOTE: DO NOT declare archetypeVersion var as readonly, its value is supplied by subshell. + archetypeVersion=$(extractFirstElementValueFromPom version cola-archetypes/cola-archetype-web/pom.xml) + + # shellcheck disable=SC2031 + readonly demo_dir="cola-archetypes/target/$archetype_name-demo" + rm -rf "$demo_dir" + mkdir -p "$demo_dir" + cd "$demo_dir" + + # shellcheck disable=SC2031 + readonly artifactId=demo-web + + jvb::mvn_cmd archetype:generate \ + -DgroupId=com.alibaba.cola.demo.archetype-web \ + -DartifactId="$artifactId" \ + -Dversion=1.0.0-SNAPSHOT \ + -Dpackage=com.alibaba.cola.demo.web \ + -DarchetypeGroupId=com.alibaba.cola \ + -DarchetypeArtifactId=$archetype_name \ + -DarchetypeVersion="$archetypeVersion" \ + -DinteractiveMode=false \ + -DarchetypeCatalog=local + + cd "$artifactId" + jvb::mvn_cmd install + ) } ######################################## @@ -130,15 +131,15 @@ test_cola_archetype # test multi-version java ######################################## for jdk in "${PREPARE_JDKS_INSTALL_BY_SDKMAN[@]}"; do - # default jdk already tested above - [ "$jdk" = "$default_build_jdk_version" ] && continue + # default jdk already tested above + [ "$jdk" = "$default_build_jdk_version" ] && continue - prepare_jdks::switch_to_jdk "$jdk" + prepare_jdks::switch_to_jdk "$jdk" - cu::head_line_echo "test with Java: $JAVA_HOME" + cu::head_line_echo "test with Java: $JAVA_HOME" - # just test without build - jvb::mvn_cmd surefire:test + # just test without build + jvb::mvn_cmd surefire:test - test_cola_archetype + test_cola_archetype done