1+ name : Release to DockerHub (snapshot, stable)
2+
3+ on :
4+ pull_request :
5+ push :
6+ branches :
7+ - master
8+ jobs :
9+ docker :
10+ name : Publish images
11+ runs-on : ubuntu-latest
12+ steps :
13+ # build the JARs
14+ - uses : actions/checkout@v3
15+ with :
16+ fetch-depth : 0
17+ - name : Set up JDK 11
18+ uses : actions/setup-java@v3
19+ with :
20+ java-version : 11
21+ distribution : ' zulu'
22+ - name : Cache Maven packages
23+ uses : actions/cache@v3
24+ with :
25+ path : ~/.m2
26+ key : ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
27+ restore-keys : ${{ runner.os }}-m2
28+ - name : Build
29+ run : ./mvnw clean install -DskipTests=true
30+
31+ # docker workflow
32+ - name : Set up QEMU
33+ uses : docker/setup-qemu-action@v3
34+ - name : Set up Docker Buildx
35+ uses : docker/setup-buildx-action@v3
36+ - name : Login to DockerHub
37+ uses : docker/login-action@v3
38+ with :
39+ username : ${{ secrets.DOCKER_USERNAME }}
40+ password : ${{ secrets.DOCKER_PASSWORD }}
41+ - name : Setup variables
42+ run : |
43+ # set as GitHub ENV variables
44+ echo "cli_version=$(\./mvnw -o org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\[')" >> $GITHUB_ENV
45+ echo "build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
46+ echo "DOCKER_GENERATOR_IMAGE_NAME=openapitools/openapi-generator-online" >> $GITHUB_ENV
47+ echo "DOCKER_CODEGEN_CLI_IMAGE_NAME=openapitools/openapi-generator-cli" >> $GITHUB_ENV
48+
49+ # online images
50+ - name : Publish openapi-generator-online snapshot version
51+ if : github.ref_type != 'tag' # not tag (release)
52+ run : |
53+ docker buildx create --use
54+ docker buildx build --push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=${{ env.build_date }} --label=org.opencontainers.image.title=openapi-generator-online --label=org.opencontainers.image.revision=$GITHUB_SHA --label=org.opencontainers.image.version=${{ env.cli_version }} -t ${{ env.DOCKER_GENERATOR_IMAGE_NAME }} ./modules/openapi-generator-online
55+ - name : Publish openapi-generator-online stable version
56+ if : github.ref_type == 'tag' # tagged (release)
57+ run : |
58+ docker buildx create --use
59+ docker buildx build --push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=${{ env.build_date }} --label=org.opencontainers.image.title=openapi-generator-online --label=org.opencontainers.image.revision=$GITHUB_SHA --label=org.opencontainers.image.version=${{ env.cli_version }} -t ${{ env.DOCKER_GENERATOR_IMAGE_NAME }}:latest -t ${{ env.DOCKER_GENERATOR_IMAGE_NAME }}:${{ github.ref_name }} -t ${{ env.DOCKER_GENERATOR_IMAGE_NAME }} -t ${{ env.DOCKER_GENERATOR_IMAGE_NAME }}:latest-release ./modules/openapi-generator-online
60+
61+ # cli images
62+ - name : Publish openapi-generator-cli snapshot version
63+ if : github.ref_type != 'tag' # not tag (release)
64+ run : |
65+ cp docker-entrypoint.sh ./modules/openapi-generator-cli
66+ docker buildx create --use
67+ docker buildx build --push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=${{ env.build_date }} --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$GITHUB_SHA --label=org.opencontainers.image.version=${{ env.cli_version }} -t ${{ env.DOCKER_CODEGEN_CLI_IMAGE_NAME }} ./modules/openapi-generator-cli
68+ - name : Publish openapi-generator-cli stable version
69+ if : github.ref_type == 'tag' # tagged (release)
70+ run : |
71+ cp docker-entrypoint.sh ./modules/openapi-generator-cli
72+ docker buildx create --use
73+ docker buildx build --push --platform linux/amd64,linux/arm64 --label=org.opencontainers.image.created=${{ env.build_date }} --label=org.opencontainers.image.title=openapi-generator-cli --label=org.opencontainers.image.revision=$GITHUB_SHA --label=org.opencontainers.image.version=${{ env.cli_version }} -t ${{ env.DOCKER_CODEGEN_CLI_IMAGE_NAME }}:latest -t ${{ env.DOCKER_CODEGEN_CLI_IMAGE_NAME }}:${{ github.ref_name }} -t ${{ env.DOCKER_CODEGEN_CLI_IMAGE_NAME }} -t ${{ env.DOCKER_CODEGEN_CLI_IMAGE_NAME }}:latest-release ./modules/openapi-generator-cli
0 commit comments