forked from loafle/openapi-generator-original
* Update Java version in Github actions * Generate samples * [java] Upgrade Gradle wrapper to 8.7 * Generate samples * [Java] Add resttemplate-jakarta to CI * Upgrade CI machines to ubuntu-2204:2024.04.4 which use Java 21 * Change CI machines to ubuntu-2204:2024.01.1 which use Java 17 * Change CI machines to ubuntu-2004:2024.01.1 * [ruby] Update Gemfile.locks * Use gradle wrapper for samples-java-client-jdk17
203 lines
9.2 KiB
YAML
203 lines
9.2 KiB
YAML
version: 2.1
|
|
commands: # a reusable command with parameters
|
|
command_build_and_test:
|
|
parameters:
|
|
nodeNo:
|
|
default: "0"
|
|
type: string
|
|
steps:
|
|
# Restore the dependency cache
|
|
- restore_cache:
|
|
keys:
|
|
# Default branch if not
|
|
- source-v2-{{ .Branch }}-{{ .Revision }}
|
|
- source-v2-{{ .Branch }}-
|
|
- source-v2-
|
|
# Machine Setup
|
|
# 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
|
|
- run:
|
|
name: Install Headless Chrome dependencies
|
|
command: |
|
|
sudo apt-get update && sudo apt-get install -yq \
|
|
gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
|
|
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
|
|
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 \
|
|
libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates \
|
|
fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm1
|
|
# The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
|
|
- checkout
|
|
# Prepare for artifact and test results collection equivalent to how it was done on 1.0.
|
|
# In many cases you can simplify this from what is generated here.
|
|
# 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
|
|
- run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
|
|
# This is based on your 1.0 configuration file or project settings
|
|
#- run:
|
|
# command: sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java; sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac; echo -e "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $BASH_ENV
|
|
- run:
|
|
command: java -version
|
|
- run:
|
|
command: 'sudo docker info >/dev/null 2>&1 || sudo service docker start; '
|
|
- run:
|
|
command: |
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 path.v1.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 path.v2.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.111 path.v3.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 operation.v1.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 operation.v2.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.111 operation.v3.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 server.v1.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 server.v2.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.111 server.v3.test.openapi-generator.tech"
|
|
sudo tee -a /etc/hosts \<<< "127.0.0.1 petstore.swagger.io"
|
|
cat /etc/hosts
|
|
# - run: docker pull openapitools/openapi-petstore
|
|
# - run: docker run -d -e OPENAPI_BASE_PATH=/v3 -e DISABLE_API_KEY=1 -e DISABLE_OAUTH=1 -p 80:8080 openapitools/openapi-petstore
|
|
- run: docker pull swaggerapi/petstore
|
|
- run: docker run --name petstore.swagger -d -e SWAGGER_HOST=http://petstore.swagger.io -e SWAGGER_BASE_PATH=/v2 -p 80:8080 swaggerapi/petstore
|
|
- run: docker ps -a
|
|
- run: sleep 30
|
|
- run: cat /etc/hosts
|
|
- run: export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
|
|
- run:
|
|
name: "Setup custom environment variables"
|
|
command: echo 'export CIRCLE_NODE_INDEX="<<parameters.nodeNo>>"' >> $BASH_ENV
|
|
- run: ./CI/circle_parallel.sh
|
|
# Save dependency cache
|
|
#- save_cache:
|
|
# key: source-v2-{{ .Branch }}-{{ .Revision }}
|
|
# paths:
|
|
# # This is a broad list of cache paths to include many possible development environments
|
|
# # You can probably delete some of these entries
|
|
# - ~/.m2
|
|
# - ~/.ivy2
|
|
# - ~/.sbt
|
|
# - ~/.bundle
|
|
# - ~/.go_workspace
|
|
# - ~/.gradle
|
|
# - ".git"
|
|
# - ~/.stack
|
|
# - ~/R
|
|
## save "default" cache using the key "source-v2-"
|
|
#- save_cache:
|
|
# key: source-v2-
|
|
# paths:
|
|
# # This is a broad list of cache paths to include many possible development environments
|
|
# # You can probably delete some of these entries
|
|
# - vendor/bundle
|
|
# - ~/.m2
|
|
# - ~/.ivy2
|
|
# - ~/.sbt
|
|
# - ~/.bundle
|
|
# - ~/.go_workspace
|
|
# - ~/.gradle
|
|
# - ~/.cache/bower
|
|
# - ".git"
|
|
# - ~/.stack
|
|
# - ~/R
|
|
# 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
|
|
# Save test results
|
|
- store_test_results:
|
|
path: /tmp/circleci-test-results
|
|
# Save artifacts
|
|
- store_artifacts:
|
|
path: /tmp/circleci-artifacts
|
|
- store_artifacts:
|
|
path: /tmp/circleci-test-results
|
|
command_docker_build_and_test:
|
|
parameters:
|
|
nodeNo:
|
|
default: "0"
|
|
type: string
|
|
steps:
|
|
# Machine Setup
|
|
# 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
|
|
# The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
|
|
- checkout
|
|
# Prepare for artifact and test results collection equivalent to how it was done on 1.0.
|
|
# In many cases you can simplify this from what is generated here.
|
|
# 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
|
|
- run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
|
|
# This is based on your 1.0 configuration file or project settings
|
|
# - run:
|
|
# command: sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java; sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac; echo -e "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $BASH_ENV
|
|
# - run:
|
|
# Test
|
|
# - run: mvn --no-snapshot-updates --quiet clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
|
|
- run:
|
|
name: "Setup custom environment variables"
|
|
command: echo 'export CIRCLE_NODE_INDEX="<<parameters.nodeNo>>"' >> $BASH_ENV
|
|
- run: ./CI/circle_parallel.sh
|
|
# 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
|
|
# Save test results
|
|
- store_test_results:
|
|
path: /tmp/circleci-test-results
|
|
# Save artifacts
|
|
- store_artifacts:
|
|
path: /tmp/circleci-artifacts
|
|
- store_artifacts:
|
|
path: /tmp/circleci-test-results
|
|
jobs:
|
|
node0:
|
|
machine:
|
|
image: ubuntu-2004:2024.01.1
|
|
working_directory: ~/OpenAPITools/openapi-generator
|
|
shell: /bin/bash --login
|
|
environment:
|
|
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
|
|
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
|
|
DOCKER_GENERATOR_IMAGE_NAME: openapitools/openapi-generator
|
|
DOCKER_CODEGEN_CLI_IMAGE_NAME: openapitools/openapi-generator-cli
|
|
steps:
|
|
- command_build_and_test:
|
|
nodeNo: "0"
|
|
node1:
|
|
machine:
|
|
image: ubuntu-2004:2024.01.1
|
|
working_directory: ~/OpenAPITools/openapi-generator
|
|
shell: /bin/bash --login
|
|
environment:
|
|
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
|
|
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
|
|
DOCKER_GENERATOR_IMAGE_NAME: openapitools/openapi-generator
|
|
DOCKER_CODEGEN_CLI_IMAGE_NAME: openapitools/openapi-generator-cli
|
|
steps:
|
|
- command_build_and_test:
|
|
nodeNo: "1"
|
|
node2:
|
|
machine:
|
|
image: ubuntu-2004:2024.01.1
|
|
working_directory: ~/OpenAPITools/openapi-generator
|
|
shell: /bin/bash --login
|
|
environment:
|
|
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
|
|
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
|
|
DOCKER_GENERATOR_IMAGE_NAME: openapitools/openapi-generator
|
|
DOCKER_CODEGEN_CLI_IMAGE_NAME: openapitools/openapi-generator-cli
|
|
steps:
|
|
- command_build_and_test:
|
|
nodeNo: "2"
|
|
node3:
|
|
machine:
|
|
image: ubuntu-2004:2024.01.1
|
|
working_directory: ~/OpenAPITools/openapi-generator
|
|
shell: /bin/bash --login
|
|
environment:
|
|
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
|
|
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
|
|
DOCKER_GENERATOR_IMAGE_NAME: openapitools/openapi-generator
|
|
DOCKER_CODEGEN_CLI_IMAGE_NAME: openapitools/openapi-generator-cli
|
|
steps:
|
|
- checkout
|
|
- command_build_and_test:
|
|
nodeNo: "3"
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- node0
|
|
- node1
|
|
- node2
|
|
- node3
|