Fix CircleCI build (#17016)

* fix circleci build

* add maven opts

* remove cache path

* clear cache

* fix node 0

* use 1024

* skip save cache

* restore tests

* fix

* fix typo

* update

* clean up pom.xml
This commit is contained in:
William Cheng 2023-11-13 10:00:55 +08:00 committed by GitHub
parent f83e4ffb9b
commit 5693eee4e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 101 additions and 306 deletions

View File

@ -57,54 +57,43 @@ commands: # a reusable command with parameters
- run: docker ps -a - run: docker ps -a
- run: sleep 30 - run: sleep 30
- run: cat /etc/hosts - run: cat /etc/hosts
# Test - run: export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
- run: ./mvnw --no-snapshot-updates --quiet clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- run: - run:
name: "Setup custom environment variables" name: "Setup custom environment variables"
command: echo 'export CIRCLE_NODE_INDEX="<<parameters.nodeNo>>"' >> $BASH_ENV command: echo 'export CIRCLE_NODE_INDEX="<<parameters.nodeNo>>"' >> $BASH_ENV
- run: ./CI/circle_parallel.sh - run: ./CI/circle_parallel.sh
# Save dependency cache # Save dependency cache
- save_cache: #- save_cache:
key: source-v2-{{ .Branch }}-{{ .Revision }} # key: source-v2-{{ .Branch }}-{{ .Revision }}
paths: # paths:
# This is a broad list of cache paths to include many possible development environments # # This is a broad list of cache paths to include many possible development environments
# You can probably delete some of these entries # # You can probably delete some of these entries
- vendor/bundle # - ~/.m2
- ~/.nvm # - ~/.ivy2
- ~/.pyenv # - ~/.sbt
- ~/virtualenvs # - ~/.bundle
- ~/.m2 # - ~/.go_workspace
- ~/.ivy2 # - ~/.gradle
- ~/.sbt # - ".git"
- ~/.bundle # - ~/.stack
- ~/.go_workspace # - ~/R
- ~/.gradle ## save "default" cache using the key "source-v2-"
- ~/.cache/bower #- save_cache:
- ".git" # key: source-v2-
- ~/.stack # paths:
- /home/circleci/OpenAPITools/openapi-generator/samples/client/petstore/haskell-http-client/.stack-work # # This is a broad list of cache paths to include many possible development environments
- ~/R # # You can probably delete some of these entries
# save "default" cache using the key "source-v2-" # - vendor/bundle
- save_cache: # - ~/.m2
key: source-v2- # - ~/.ivy2
paths: # - ~/.sbt
# This is a broad list of cache paths to include many possible development environments # - ~/.bundle
# You can probably delete some of these entries # - ~/.go_workspace
- vendor/bundle # - ~/.gradle
- ~/.nvm # - ~/.cache/bower
- ~/.pyenv # - ".git"
- ~/virtualenvs # - ~/.stack
- ~/.m2 # - ~/R
- ~/.ivy2
- ~/.sbt
- ~/.bundle
- ~/.go_workspace
- ~/.gradle
- ~/.cache/bower
- ".git"
- ~/.stack
- /home/circleci/OpenAPITools/openapi-generator/samples/client/petstore/haskell-http-client/.stack-work
- ~/R
# Teardown # Teardown
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each # If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# Save test results # Save test results

View File

@ -10,10 +10,13 @@ set -e
export NODE_ENV=test export NODE_ENV=test
if [ "$NODE_INDEX" = "1" ]; then if [ "$NODE_INDEX" = "1" ]; then
echo "Running node $NODE_INDEX to test 'samples.circleci' defined in pom.xml ..." echo "Running node $NODE_INDEX ..."
java -version java -version
./mvnw --no-snapshot-updates --quiet verify -Psamples.circleci -Dorg.slf4j.simpleLogger.defaultLogLevel=error (cd samples/client/petstore/ruby && mvn integration-test)
(cd samples/client/petstore/ruby-faraday && mvn integration-test)
(cd samples/client/petstore/ruby-httpx && mvn integration-test)
(cd samples/client/petstore/ruby-autoload && mvn integration-test)
elif [ "$NODE_INDEX" = "2" ]; then elif [ "$NODE_INDEX" = "2" ]; then
echo "Running node $NODE_INDEX to test Go" echo "Running node $NODE_INDEX to test Go"
@ -33,20 +36,14 @@ elif [ "$NODE_INDEX" = "2" ]; then
export PATH="/usr/local/go1.18/go/bin:$PATH" export PATH="/usr/local/go1.18/go/bin:$PATH"
go version go version
# run integration tests # run go integration tests
./mvnw --no-snapshot-updates --quiet verify -Psamples.misc -Dorg.slf4j.simpleLogger.defaultLogLevel=error (cd samples/client/petstore/go && mvn integration-test)
(cd samples/openapi3/client/petstore/go && mvn integration-test)
(cd samples/openapi3/client/petstore/go-petstore-generateMarshalJSON-false && mvn integration-test)
elif [ "$NODE_INDEX" = "3" ]; then elif [ "$NODE_INDEX" = "3" ]; then
echo "Running node $NODE_INDEX to test 'samples.circleci.node3' defined in pom.xml ..." echo "Running node $NODE_INDEX ... "
#wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
#tar -xf Python-3.8.9.tgz
#cd Python-3.8.9
#./configure --enable-optimizations
#sudo make altinstall
pyenv install --list
pyenv install 3.7.12
#pyenv install 2.7.14 #python2 no longer supported
pyenv global 3.7.12
# Install node@stable (for angular 6) # Install node@stable (for angular 6)
set +e set +e
@ -63,23 +60,71 @@ elif [ "$NODE_INDEX" = "3" ]; then
echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
echo "[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"" >> $BASH_ENV echo "[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"" >> $BASH_ENV
./mvnw --no-snapshot-updates --quiet verify -Psamples.circleci.node3 -Dorg.slf4j.simpleLogger.defaultLogLevel=error (cd samples/client/others/typescript-angular && mvn integration-test)
(cd samples/client/petstore/typescript-angular-v12-provided-in-root && mvn integration-test)
(cd samples/client/petstore/typescript-angular-v13-provided-in-root && mvn integration-test)
(cd samples/client/petstore/typescript-angular-v14-provided-in-root && mvn integration-test)
(cd samples/client/petstore/typescript-angular-v15-provided-in-root && mvn integration-test)
(cd samples/client/petstore/typescript-angular-v16-provided-in-root && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/builds/default && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/tests/default && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/builds/jquery && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/tests/jquery && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/builds/object_params && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/tests/object_params && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/builds/inversify && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/tests/inversify && mvn integration-test)
#(cd samples/openapi3/client/petstore/typescript/tests/deno && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/builds/browser && mvn integration-test)
(cd samples/openapi3/client/petstore/typescript/tests/browser && mvn integration-test)
(cd samples/client/petstore/typescript-fetch/builds/default && mvn integration-test)
(cd samples/client/petstore/typescript-fetch/builds/es6-target && mvn integration-test)
(cd samples/client/petstore/typescript-fetch/builds/with-npm-version && mvn integration-test)
(cd samples/client/petstore/typescript-fetch/tests/default && mvn integration-test)
(cd samples/client/petstore/typescript-node/npm && mvn integration-test)
(cd samples/client/petstore/typescript-rxjs/builds/with-npm-version && mvn integration-test)
(cd samples/client/petstore/typescript-axios/builds/with-npm-version && mvn integration-test)
(cd samples/client/petstore/typescript-axios/tests/default && mvn integration-test)
(cd samples/client/petstore/javascript-flowtyped && mvn integration-test)
(cd samples/client/petstore/javascript-es6 && mvn integration-test)
(cd samples/client/petstore/javascript-promise-es6 && mvn integration-test)
elif [ "$NODE_INDEX" = "4" ]; then elif [ "$NODE_INDEX" = "4" ]; then
echo "Running node $NODE_INDEX to test 'samples.circleci.node4' defined in pom.xml ..." echo "Running node $NODE_INDEX ..."
#mvn --no-snapshot-updates --quiet verify -Psamples.circleci.node4 -Dorg.slf4j.simpleLogger.defaultLogLevel=error #wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
#(cd samples/openapi3/client/petstore/python && make test) #tar -xf Python-3.8.9.tgz
# comment out due to ModuleNotFoundError: No module named 'urllib3.request' #cd Python-3.8.9
#(cd samples/openapi3/client/petstore/python-prior && make test) #./configure --enable-optimizations
#(cd samples/openapi3/client/3_0_3_unit_test/python && make test) #sudo make altinstall
pyenv install --list
pyenv install 3.7.12
#pyenv install 2.7.14 #python2 no longer supported
pyenv global 3.7.12
(cd samples/openapi3/client/petstore/python && mvn integration-test)
(cd samples/openapi3/client/petstore/python-pydantic-v1 && mvn integration-test)
(cd samples/openapi3/client/petstore/python-aiohttp && mvn integration-test)
(cd samples/openapi3/client/petstore/python-pydantic-v1-aiohttp && mvn integration-test)
else else
echo "Running node $NODE_INDEX to test 'samples.circleci.others' defined in pom.xml ..." echo "Running node $NODE_INDEX ..."
java -version java -version
./mvnw --no-snapshot-updates --quiet verify -Psamples.circleci.others -Dorg.slf4j.simpleLogger.defaultLogLevel=error (cd samples/client/petstore/scala-akka && mvn integration-test)
./mvnw --no-snapshot-updates --quiet javadoc:javadoc -Psamples.circleci -Dorg.slf4j.simpleLogger.defaultLogLevel=error (cd samples/client/petstore/scala-sttp && mvn integration-test)
(cd samples/client/petstore/scala-sttp4 && mvn integration-test)
(cd samples/client/petstore/clojure && mvn integration-test)
(cd samples/client/petstore/java/jersey2-java8 && mvn integration-test)
(cd samples/openapi3/client/petstore/java/jersey2-java8 && mvn integration-test)
(cd samples/client/petstore/java/jersey3 && mvn integration-test)
(cd samples/client/others/java/okhttp-gson-streaming && mvn integration-test)
(cd samples/client/petstore/java/okhttp-gson && mvn integration-test)
(cd samples/client/petstore/java/okhttp-gson-3.1 && mvn integration-test)
(cd samples/client/petstore/java/resteasy && mvn integration-test)
(cd samples/client/petstore/java-micronaut-client && mvn integration-test)
(cd samples/client/petstore/java/apache-httpclient && mvn integration-test)
fi fi

239
pom.xml
View File

@ -1119,245 +1119,6 @@
<module>samples/server/petstore/java-undertow</module> <module>samples/server/petstore/java-undertow</module>
</modules> </modules>
</profile> </profile>
<profile>
<id>samples</id>
<activation>
<property>
<name>env</name>
<value>samples</value>
</property>
</activation>
<modules>
<!-- comment out as newer version of qt needed in travis
<module>samples/client/petstore/cpp-qt</module>-->
<!--
<module>samples/client/petstore/php/OpenAPIClient-php</module>-->
<!-- TODO: move to github action or circleci
<module>samples/client/petstore/crystal</module>-->
<!-- TODO: will move these to Github action
<module>samples/server/petstore/php-slim4</module>
<module>samples/server/petstore/php-laravel</module>
<module>samples/server/petstore/php-lumen</module>-->
<!--<module>samples/server/petstore/rust-server</module>-->
<!-- clients -->
<!--<module>samples/client/petstore/perl</module>-->
<!--<module>samples/client/petstore/bash</module>-->
<!-- comment out as it's not working as the moment
<module>samples/client/petstore/c</module>
-->
<module>samples/client/petstore/rust</module>
<module>samples/client/petstore/rust/hyper/petstore</module>
<module>samples/client/petstore/rust/reqwest/petstore</module>
<module>samples/client/petstore/rust/reqwest/petstore-async</module>
<module>samples/client/petstore/rust/reqwest/petstore-async-middleware</module>
<!--<module>samples/client/petstore/javascript-apollo</module>-->
</modules>
</profile>
<!-- test with JDK8 in CircleCI -->
<profile>
<id>samples.circleci</id>
<activation>
<property>
<name>env</name>
<value>samples.circleci</value>
</property>
</activation>
<modules>
<module>samples/client/petstore/ruby</module>
<module>samples/client/petstore/ruby-faraday</module>
<module>samples/client/petstore/ruby-httpx</module>
<module>samples/client/petstore/ruby-autoload</module>
</modules>
</profile>
<profile>
<id>samples.circleci.spring</id>
<activation>
<property>
<name>env</name>
<value>samples.circleci.spring</value>
</property>
</activation>
<modules>
<!-- clients -->
<module>samples/client/petstore/spring-cloud</module>
</modules>
</profile>
<!-- node 3 tests in CircleCI -->
<profile>
<id>samples.circleci.node3</id>
<activation>
<property>
<name>env</name>
<value>samples.circleci.node3</value>
</property>
</activation>
<modules>
<!-- clients -->
<module>samples/openapi3/client/petstore/python</module>
<module>samples/openapi3/client/petstore/python-pydantic-v1</module>
<module>samples/openapi3/client/petstore/python-aiohttp</module>
<module>samples/openapi3/client/petstore/python-pydantic-v1-aiohttp</module>
<!-- TODO comment out below when the test for typescript-nestjs is ready
<module>samples/client/petstore/typescript-nestjs-v6-provided-in-root</module>-->
<!-- comment out due to error `npm run build`
<module>samples/client/petstore/typescript-jquery/npm</module>-->
<module>samples/client/others/typescript-angular</module>
<module>samples/client/petstore/typescript-angular-v12-provided-in-root</module>
<module>samples/client/petstore/typescript-angular-v13-provided-in-root</module>
<module>samples/client/petstore/typescript-angular-v14-provided-in-root</module>
<module>samples/client/petstore/typescript-angular-v15-provided-in-root</module>
<module>samples/client/petstore/typescript-angular-v16-provided-in-root</module>
<module>samples/openapi3/client/petstore/typescript/builds/default</module>
<module>samples/openapi3/client/petstore/typescript/tests/default</module>
<module>samples/openapi3/client/petstore/typescript/builds/jquery</module>
<module>samples/openapi3/client/petstore/typescript/tests/jquery</module>
<module>samples/openapi3/client/petstore/typescript/builds/object_params</module>
<module>samples/openapi3/client/petstore/typescript/tests/object_params</module>
<module>samples/openapi3/client/petstore/typescript/builds/inversify</module>
<!-- comment out due to failure in travis ci
<module>samples/openapi3/client/petstore/typescript/tests/inversify</module>
<module>samples/openapi3/client/petstore/typescript/tests/deno</module>-->
<module>samples/openapi3/client/petstore/typescript/builds/browser</module>
<module>samples/openapi3/client/petstore/typescript/tests/browser</module>
<module>samples/client/petstore/typescript-fetch/builds/default</module>
<module>samples/client/petstore/typescript-fetch/builds/es6-target</module>
<module>samples/client/petstore/typescript-fetch/builds/with-npm-version</module>
<module>samples/client/petstore/typescript-fetch/tests/default</module>
<module>samples/client/petstore/typescript-node/npm</module>
<module>samples/client/petstore/typescript-rxjs/builds/with-npm-version</module>
<module>samples/client/petstore/typescript-axios/builds/with-npm-version</module>
<module>samples/client/petstore/typescript-axios/tests/default</module>
<module>samples/client/petstore/javascript-flowtyped</module>
<module>samples/client/petstore/javascript-es6</module>
<module>samples/client/petstore/javascript-promise-es6</module>
</modules>
</profile>
<!-- node 4 tests in CircleCI -->
<profile>
<id>samples.circleci.node4</id>
<activation>
<property>
<name>env</name>
<value>samples.circleci.node4</value>
</property>
</activation>
<modules>
</modules>
</profile>
<!-- other tests in CircleCI -->
<profile>
<id>samples.circleci.others</id>
<activation>
<property>
<name>env</name>
<value>samples.circleci.others</value>
</property>
</activation>
<modules>
<!-- clients -->
<!-- test java-related projects -->
<module>samples/client/petstore/scala-akka</module>
<module>samples/client/petstore/scala-sttp</module>
<module>samples/client/petstore/scala-sttp4</module>
<module>samples/client/petstore/clojure</module>
<module>samples/client/petstore/java/jersey2-java8</module>
<module>samples/openapi3/client/petstore/java/jersey2-java8</module>
<module>samples/client/petstore/java/jersey3</module>
<module>samples/client/others/java/okhttp-gson-streaming</module>
<module>samples/client/petstore/java/okhttp-gson</module>
<module>samples/client/petstore/java/okhttp-gson-3.1</module>
<module>samples/client/petstore/java/resteasy</module>
<module>samples/client/petstore/java-micronaut-client</module>
<module>samples/client/petstore/java/apache-httpclient</module>
<!-- server -->
<module>samples/server/petstore/java-undertow</module>
</modules>
</profile>
<!-- test with Haskell -->
<profile>
<id>samples.misc</id>
<activation>
<property>
<name>env</name>
<value>samples.misc</value>
</property>
</activation>
<modules>
<!-- clients -->
<!--<module>samples/client/petstore/haskell-http-client</module>-->
<!-- servers -->
<!--<module>samples/server/petstore/haskell-servant</module>-->
<!-- test Go projects -->
<module>samples/client/petstore/go</module>
<module>samples/openapi3/client/petstore/go</module>
<module>samples/openapi3/client/petstore/go-petstore-generateMarshalJSON-false</module>
<!-- comment out due to Go version
<module>samples/server/petstore/go-gin-api-server</module>-->
</modules>
</profile>
<profile>
<id>samples.dart</id>
<activation>
<property>
<name>env</name>
<value>samples.dart</value>
</property>
</activation>
<modules>
<module>samples/openapi3/client/petstore/dart2/petstore_client_lib</module>
<module>samples/openapi3/client/petstore/dart-dio/oneof</module>
<module>samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance</module>
<module>samples/openapi3/client/petstore/dart-dio/oneof_primitive</module>
<module>samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake</module>
<module>samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable</module>
</modules>
</profile>
<profile>
<id>samples.ios</id>
<activation>
<property>
<name>env</name>
<value>samples.ios</value>
</property>
</activation>
<modules>
<!-- swift 5 samples -->
<module>samples/client/petstore/swift5/alamofireLibrary</module>
<module>samples/client/petstore/swift5/combineLibrary</module>
<module>samples/client/petstore/swift5/default</module>
<module>samples/client/petstore/swift5/deprecated</module>
<module>samples/client/petstore/swift5/frozenEnums</module>
<module>samples/client/petstore/swift5/nonPublicApi</module>
<module>samples/client/petstore/swift5/objcCompatible</module>
<module>samples/client/petstore/swift5/promisekitLibrary</module>
<module>samples/client/petstore/swift5/readonlyProperties</module>
<module>samples/client/petstore/swift5/resultLibrary</module>
<module>samples/client/petstore/swift5/rxswiftLibrary</module>
<module>samples/client/petstore/swift5/urlsessionLibrary</module>
<!-- swift 5 tests -->
<!-- temporarily comment them because they are flaky
<module>samples/client/petstore/swift5/alamofireLibrary/SwaggerClientTests</module>
<module>samples/client/petstore/swift5/combineLibrary/SwaggerClientTests</module>
<module>samples/client/petstore/swift5/default/SwaggerClientTests</module>
<module>samples/client/petstore/swift5/promisekitLibrary/SwaggerClientTests</module>
<module>samples/client/petstore/swift5/rxswiftLibrary/SwaggerClientTests</module>
<module>samples/client/petstore/swift5/urlsessionLibrary/SwaggerClientTests</module>
-->
<!-- swift 1.x, 3.x, 4.x client generators have been deprecated
<module>samples/client/petstore/swift4/default/SwaggerClientTests</module>
<module>samples/client/petstore/swift4/promisekit/SwaggerClientTests</module>
<module>samples/client/petstore/swift4/rxswift/SwaggerClientTests</module>
<module>samples/client/petstore/swift3/default/SwaggerClientTests</module>
<module>samples/client/petstore/swift3/promisekit/SwaggerClientTests</module>
<module>samples/client/petstore/swift3/rxswift/SwaggerClientTests</module>
<module>samples/client/petstore/swift/default/SwaggerClientTests</module>
<module>samples/client/petstore/swift/promisekit/SwaggerClientTests</module>
<module>samples/client/petstore/swift/rxswift/SwaggerClientTests</module>-->
<!-- comment out objc tests as it's timing out
<module>samples/client/petstore/objc/default/SwaggerClientTests</module>
<module>samples/client/petstore/objc/core-data/SwaggerClientTests</module>-->
</modules>
</profile>
<profile> <profile>
<id>openapi-generator</id> <id>openapi-generator</id>
<activation> <activation>