diff --git a/.travis.yml b/.travis.yml
index 20819c11f25..877c331ad61 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -124,10 +124,27 @@ after_success:
popd;
fi;
fi;
- ## docker: build and push openapi-generator-online to DockerHub
- - if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && docker build -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_GENERATOR_IMAGE_NAME && echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME"; fi; fi
- ## docker: build cli image and push to Docker Hub
- - if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME && echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME"; fi; fi
-
+ ## docker build and push images to DockerHub (openapi-generator-online, openapi-generator-cli)
+ - if [ $DOCKER_HUB_USERNAME ]; then
+ read -r MVN_VERSION_FOR_DOCKER_TAG < target/ci/version-for-docker-tag.txt
+ echo "Tag for Docker derived from maven version: $MVN_VERSION_FOR_DOCKER_TAG"
+ echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin
+ if [ ! -z "$TRAVIS_TAG" ]; then
+ docker build -t $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-online
+ docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-cli
+ elif [ "$TRAVIS_BRANCH" == "master" ]; then
+ docker build -t $DOCKER_GENERATOR_IMAGE_NAME -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-online
+ docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-cli
+ else
+ docker build -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-online
+ docker build -t $DOCKER_GENERATOR_IMAGE_NAME:$MVN_VERSION_FOR_DOCKER_TAG ./modules/openapi-generator-cli
+ fi;
+ if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" == "master" ] || [ "$TRAVIS_BRANCH" == "3.1.x" ] || [ "$TRAVIS_BRANCH" == "4.0.x" ];
+ docker push $DOCKER_GENERATOR_IMAGE_NAME
+ echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME";
+ docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME
+ echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME";
+ fi;
+ fi;
env:
- DOCKER_GENERATOR_IMAGE_NAME=openapitools/openapi-generator-online DOCKER_CODEGEN_CLI_IMAGE_NAME=openapitools/openapi-generator-cli NODE_ENV=test
diff --git a/CI/resources/version-for-docker-tag.txt b/CI/resources/version-for-docker-tag.txt
new file mode 100644
index 00000000000..67848a54991
--- /dev/null
+++ b/CI/resources/version-for-docker-tag.txt
@@ -0,0 +1 @@
+${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.x
\ No newline at end of file
diff --git a/README.md b/README.md
index 28a51f91506..23beedc02ef 100644
--- a/README.md
+++ b/README.md
@@ -193,6 +193,22 @@ To reinstall with the latest master, run `brew reinstall --HEAD openapi-generato
- [https://hub.docker.com/r/openapitools/openapi-generator-cli/](https://hub.docker.com/r/openapitools/openapi-generator-cli/) (official CLI)
- [https://hub.docker.com/r/openapitools/openapi-generator-online/](https://hub.docker.com/r/openapitools/openapi-generator-online/) (official web service)
+#### Docker tags
+
+`lastest` Tag contains the continuously built version from our `master` branch.
+
+`v0.0.0` Tags correspond to a released version in this git repository. Examples:
+
+* `v3.0.0` Tag
+* `v3.0.1` Tag
+* `v3.0.2` Tag
+
+`0.0.x` Tags correspond to continuously built versions (after each commit), regardless of the branch it is built from. Examples:
+
+* `3.0.x` Tag: contains first `3.0.2-SNAPSHOT` and after the `3.0.2` release it contains `3.0.3-SNAPSHOT` and so on.
+* `3.1.x` Tag: contains first `3.1.0-SNAPSHOT` and after the `3.1.0` release it contains `3.1.1-SNAPSHOT` and so on.
+* `4.0.x` Tag: contains first `4.0.0-SNAPSHOT` and after the `4.0.0` release it contains `4.0.1-SNAPSHOT` and so on.
+
#### OpenAPI Generator CLI Docker Image
diff --git a/pom.xml b/pom.xml
index 6862c0e89ab..8263001e523 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,6 +101,41 @@
target
${project.artifactId}-${project.version}
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.0.0
+
+
+ parse-version
+
+ parse-version
+
+
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ copy-resources
+ package
+
+ copy-resources
+
+
+ ${project.build.directory}/
+
+
+ ${project.basedir}/CI/resources
+ true
+
+
+
+
+
+
net.revelc.code
formatter-maven-plugin