CircleCI: run Java8, Java7 tests in parallel (#608)

* run circle jobs in parallel

* fix circleci file

* disable parallel run

* fix build type

* fix circleci config parse error

* move mvn install to circle.yml

* revise circleci tests

* trigger test failures

* remove failure trigger
This commit is contained in:
William Cheng 2018-07-20 18:45:14 +08:00 committed by GitHub
parent c70ed678f6
commit 1b2d12286f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 29 additions and 23 deletions

19
CI/circle_parallel.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
NODE_INDEX=${CIRCLE_NODE_INDEX:-0}
if [ "$NODE_INDEX" = "1" ]; then
echo "Running node $NODE_INDEX to test CI/pom.xml.circleci ..."
cp CI/pom.xml.circleci pom.xml
java -version
mvn --quiet verify -Psamples
else
echo "Running node $NODE_INDEX to test CI/pom.xml.circleci.java7 ..."
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
java -version
cp CI/pom.xml.circleci.java7 pom.xml
mvn --quiet verify -Psamples
fi

View File

@ -844,10 +844,12 @@
<module>samples/client/petstore/java/feign</module> <module>samples/client/petstore/java/feign</module>
<module>samples/client/petstore/java/jersey1</module> <module>samples/client/petstore/java/jersey1</module>
<module>samples/client/petstore/java/jersey2</module> <module>samples/client/petstore/java/jersey2</module>
<module>samples/client/petstore/java/jersey2-java8</module>
<module>samples/client/petstore/java/okhttp-gson</module> <module>samples/client/petstore/java/okhttp-gson</module>
<module>samples/client/petstore/java/retrofit</module> <module>samples/client/petstore/java/retrofit</module>
<module>samples/client/petstore/java/retrofit2</module> <module>samples/client/petstore/java/retrofit2</module>
<module>samples/client/petstore/java/retrofit2rx</module> <module>samples/client/petstore/java/retrofit2rx</module>
<module>samples/client/petstore/java/retrofit2-play25</module>
<module>samples/client/petstore/jaxrs-cxf-client</module> <module>samples/client/petstore/jaxrs-cxf-client</module>
<module>samples/client/petstore/java/resttemplate</module> <module>samples/client/petstore/java/resttemplate</module>
<module>samples/client/petstore/java/resttemplate-withXml</module> <module>samples/client/petstore/java/resttemplate-withXml</module>

View File

@ -852,9 +852,6 @@
<module>samples/client/petstore/java/resteasy</module> <module>samples/client/petstore/java/resteasy</module>
<module>samples/client/petstore/java/google-api-client</module> <module>samples/client/petstore/java/google-api-client</module>
<module>samples/client/petstore/kotlin/</module> <module>samples/client/petstore/kotlin/</module>
<!-- test non-java projects -->
<!--<module>samples/client/petstore/go</module>-->
<module>samples/client/petstore/typescript-angular-v6-provided-in-root</module>
<!-- servers --> <!-- servers -->
<module>samples/server/petstore/java-vertx/rx</module> <module>samples/server/petstore/java-vertx/rx</module>
<module>samples/server/petstore/java-vertx/async</module> <module>samples/server/petstore/java-vertx/async</module>

View File

@ -1,10 +1,16 @@
version: 2 version: 2
jobs: jobs:
build: build:
# docker:
# #- image: openapitools/openapi-generator
# - image: swaggerapi/petstore
# environment:
# SWAGGER_HOST=http://petstore.swagger.io
# SWAGGER_BASE_PATH=/v2
machine: machine:
docker_layer_caching: true docker_layer_caching: true
working_directory: ~/OpenAPITools/openapi-generator working_directory: ~/OpenAPITools/openapi-generator
parallelism: 1 parallelism: 2
shell: /bin/bash --login shell: /bin/bash --login
environment: environment:
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
@ -37,12 +43,6 @@ jobs:
printf '127.0.0.1 petstore.swagger.io printf '127.0.0.1 petstore.swagger.io
' | sudo tee -a /etc/hosts ' | sudo tee -a /etc/hosts
# Dependencies # Dependencies
# This would typically go in either a build or a build-and-test job when using workflows
# This is based on your 1.0 configuration file or project settings
- run: sudo add-apt-repository ppa:duggan/bats --yes
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq bats
- run: sudo apt-get install -qq curl
# Install latest stable node for angular 6 # Install latest stable node for angular 6
- run: - run:
name: Install node@stable (for angular 6) name: Install node@stable (for angular 6)
@ -65,21 +65,9 @@ jobs:
- run: docker ps -a - run: docker ps -a
- run: sleep 30 - run: sleep 30
- run: cat /etc/hosts - run: cat /etc/hosts
# This is based on your 1.0 configuration file or project settings
- run: cp CI/pom.xml.circleci pom.xml
# Test # Test
# This would typically be a build job when using workflows, possibly combined with build
# This is based on your 1.0 configuration file or project settings
#- run: java -version
- run: mvn --quiet clean install - run: mvn --quiet clean install
- run: mvn --quiet verify -Psamples - run: ./CI/circle_parallel.sh
- run: if [ $? -ne 0 ]; then exit 1; fi
- run: sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
- run: java -version
- run: cp CI/pom.xml.circleci.java7 pom.xml
- run: mvn --quiet clean install
- run: mvn --quiet verify -Psamples
- run: if [ $? -ne 0 ]; then exit 1; fi
# Save dependency cache # Save dependency cache
- save_cache: - save_cache:
key: source-v1-{{ .Branch }}-{{ .Revision }} key: source-v1-{{ .Branch }}-{{ .Revision }}