@@ -62,6 +62,14 @@ addons:
6262 - petstore.swagger.io
6363
6464before_install :
65+ - sudo rm -rf /var/lib/apt/lists/*
66+ - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
67+ - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) edge"
68+ - sudo apt-get update
69+ - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
70+ - mkdir -vp ~/.docker/cli-plugins/
71+ - curl --silent -L "https://github.com/docker/buildx/releases/download/v0.3.0/buildx-v0.3.0.linux-amd64" > ~/.docker/cli-plugins/docker-buildx
72+ - chmod a+x ~/.docker/cli-plugins/docker-buildx
6573 # to run petstore server locally via docker
6674 - echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin || true
6775 - docker pull swaggerapi/petstore
@@ -149,6 +157,10 @@ install:
149157script :
150158 # fail fast
151159 - set -e
160+ # show docker buildx version
161+ - docker buildx version
162+ # fail if the template files contains tabs
163+ - /bin/bash ./bin/utils/detect_tab_in_templates.sh
152164 # fail if the test files have changes
153165 - bin/utils/detect_test_file_changes.rb bin/utils/test_file_list.yaml
154166 # fail if templates/generators contain carriage return '\r'
@@ -197,12 +209,14 @@ after_success:
197209 echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin;
198210 export cli_version=$(\mvn -o org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\[');
199211 export build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ");
200- docker build --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-online --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online ;
212+ docker buildx create --use ;
201213 if [ ! -z "$TRAVIS_TAG" ]; then
202- docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG;
214+ docker buildx build --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-online --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_GENERATOR_IMAGE_NAME:latest -t $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online;
215+ echo "Built and tagged $DOCKER_GENERATOR_IMAGE_NAME";
203216 fi;
204- if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then
205- docker push $DOCKER_GENERATOR_IMAGE_NAME && echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME";
217+ if [ -z "$TRAVIS_TAG" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
218+ docker buildx build --push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-online --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online;
219+ echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME for master";
206220 fi;
207221 fi;
208222 # # docker: build cli image and push to Docker Hub
@@ -211,12 +225,14 @@ after_success:
211225 cp docker-entrypoint.sh ./modules/openapi-generator-cli;
212226 export cli_version=$(\mvn -o org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\[');
213227 export build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ");
214- docker build --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli;
228+ docker buildx create --use;
229+ docker buildx build --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli;
215230 if [ ! -z "$TRAVIS_TAG" ]; then
216- docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG;
231+ docker buildx build --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest -t $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli;
232+ echo "Built and tagged $DOCKER_GENERATOR_IMAGE_NAME";
217233 fi;
218- if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then
219- docker push $ DOCKER_CODEGEN_CLI_IMAGE_NAME;
234+ if [ -z "$TRAVIS_TAG" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = "false " ]; then
235+ docker buildx build -- push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=$build_date --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$TRAVIS_COMMIT --label=org.opencontainers.image.version=$cli_version -t $ DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli ;
220236 echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME";
221237 fi;
222238 fi;
0 commit comments