From e6ce2410397e2d63f41f9031885247943a333558 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 13:15:19 +0100 Subject: [PATCH 01/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index 11863a10c..038f996a3 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -12,13 +12,9 @@ inputs: required: false default: "linux/amd64,linux/arm64" type: string - image-name: - description: "Name of Docker image." + repository: + description: "The repository to push the image to" required: false - default: "${{ github.event.repository.name }}" - full-image-name: - description: "Full name of image (registry/image). The image should be provided without a tag." - required: true allow-insecure-registries: description: "Whether to allow insecure registries or not. (Default is false)" required: false @@ -85,7 +81,7 @@ runs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ inputs.image-name }} + images: ${{ github.event.repository.name }} tags: | event=tag,type=semver,pattern={{version}} event=push,type=raw,value=pipeline-${{ github.run_id }}-git-{{sha}},enable=${{ github.ref_type != 'tag' }} @@ -96,11 +92,11 @@ runs: run: | ./gradlew ${{ inputs.subproject && format('{0}:', inputs.subproject) || '' }}jib \ --info --stacktrace \ - --image=${{ inputs.image-name }} \ -Djib.from.platforms=${{ inputs.platforms }} \ ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ ${{ inputs.class && format('-Djib.container.mainClass={0}', inputs.class) || '' }} \ - -Djib.to.image=${{ inputs.full-image-name }}$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*\(:.*\)/\1/') \ + ${{ inputs.repository && format('-Djib.to.image.repository={0}', inputs.repository) || '' }} \ + -Djib.to.image.tag=$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*\(:.*\)/\1/') \ $([[ "${{ github.ref_type }}" == "tag" ]] && echo "-Djib.to.tags=latest") \ ${{ inputs.gradle-refresh-dependencies == 'true' && '--refresh-dependencies' || '' }} \ ${{ inputs.allow-insecure-registries == 'true' && '-Djib.allowInsecureRegistries=true' || '' }} From 0cfed2589c08b5fedd4fc3f4b1098752d73028c2 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 13:26:26 +0100 Subject: [PATCH 02/13] Use new jib plugin --- docs/actions/java-gradle-build-jib/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/actions/java-gradle-build-jib/README.md b/docs/actions/java-gradle-build-jib/README.md index 9d97446e6..8ad610118 100644 --- a/docs/actions/java-gradle-build-jib/README.md +++ b/docs/actions/java-gradle-build-jib/README.md @@ -9,16 +9,15 @@ | allow-insecure-registries | string | false | `"false"` | Whether to allow insecure registries or not. (Default is false) | | class | string | false | | The entrypoint class to be used for the image | | download-lfs-files | string | false | `"false"` | Whether the Git checkout action should resolve LFS files or not. (Default is false) | -| full-image-name | string | true | | Full name of image (registry/image). The image should be provided without a tag. | | gradle-cache | string | false | `"true"` | Whether Gradle caching is enabled or not. (Default is true) | | gradle-cache-read-only | string | false | `"${{ github.event.repository != null && github.ref_name != github.event.repository.default_branch }}"` | Whether Gradle caching should be read-only. By default this value is 'false' for workflows on the GitHub default branch and 'true' for workflows on other branches. | | gradle-refresh-dependencies | string | false | `"false"` | Whether Gradle should refresh dependencies. (Default is false) | | gradle-version | string | false | `"wrapper"` | Gradle version to be installed. (Default is wrapper) | -| image-name | string | false | `"${{ github.event.repository.name }}"` | Name of Docker image. | | java-distribution | string | false | `"microsoft"` | Java distribution to be installed. (Default is microsoft) | | java-version | string | false | `"11"` | Java version to be installed. (Default is 11) | | jib-from-image | string | false | | The Jib base image to use | | platforms | string | false | `"linux/amd64,linux/arm64"` | Architectures for the created image (comma separated) | +| repository | string | false | | The repository to push the image to | | subproject | string | false | | The Gradle subproject for which the image should be built (If not specified, an image for the root project will be built) | | working-directory | string | false | `"."` | Working directory of your Gradle artifacts. (Default is .) | From 649407187a6d0c52b788f7842148afcc188b3cd6 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 13:35:25 +0100 Subject: [PATCH 03/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index 038f996a3..c8eaa91e2 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -4,7 +4,7 @@ description: "Build Multi-Platform image using Gradle" outputs: image-tag: description: "The tag of the docker image." - value: ${{ steps.meta.outputs.tags }} + value: ${{ steps.meta.outputs.tags }} # FIXME output contains wrong image name inputs: platforms: From 0ac8ead0761fb62b5d90b3115377531d06884b41 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 13:55:01 +0100 Subject: [PATCH 04/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index c8eaa91e2..9b554d4b7 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -96,7 +96,7 @@ runs: ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ ${{ inputs.class && format('-Djib.container.mainClass={0}', inputs.class) || '' }} \ ${{ inputs.repository && format('-Djib.to.image.repository={0}', inputs.repository) || '' }} \ - -Djib.to.image.tag=$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*\(:.*\)/\1/') \ + -Djib.to.image.tag=$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*:\(.*\)/\1/') \ $([[ "${{ github.ref_type }}" == "tag" ]] && echo "-Djib.to.tags=latest") \ ${{ inputs.gradle-refresh-dependencies == 'true' && '--refresh-dependencies' || '' }} \ ${{ inputs.allow-insecure-registries == 'true' && '-Djib.allowInsecureRegistries=true' || '' }} From ab545448da388b257335bc31ea556ceddf8821ca Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 14:08:14 +0100 Subject: [PATCH 05/13] Use new jib plugin --- .github/workflows/java-gradle-docker.yaml | 33 +++++++++-------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/.github/workflows/java-gradle-docker.yaml b/.github/workflows/java-gradle-docker.yaml index db7ab6f1d..679f3b08a 100644 --- a/.github/workflows/java-gradle-docker.yaml +++ b/.github/workflows/java-gradle-docker.yaml @@ -105,13 +105,21 @@ jobs: sonar-token: ${{ secrets.sonar-token }} build-jib: - name: Build tarball image + name: Build Docker image runs-on: ubuntu-22.04 needs: build-and-test steps: - - name: Build tarball image - uses: bakdata/ci-templates/actions/java-gradle-build-jib@1.49.0 + - name: Login into docker + uses: docker/login-action@v3 + with: + registry: ${{ inputs.docker-registry }} + username: ${{ secrets.docker-username }} + password: ${{ secrets.docker-password }} + + - name: Jib build + id: build-image + uses: bakdata/ci-templates/actions/java-gradle-build-jib@feature/jib-plugin with: java-distribution: ${{ inputs.java-distribution }} java-version: ${{ inputs.java-version }} @@ -120,6 +128,7 @@ jobs: gradle-cache-read-only: true gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }} working-directory: ${{ inputs.working-directory }} + repository: ${{ inputs.docker-registry }}/${{ inputs.docker-publisher }} publish: name: Publish @@ -143,24 +152,6 @@ jobs: gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }} working-directory: ${{ inputs.working-directory }} - publish-jib-image: - name: Publish tarball image - runs-on: ubuntu-22.04 - needs: build-jib - - steps: - - name: Login into docker - uses: docker/login-action@v3 - with: - registry: ${{ inputs.docker-registry }} - username: ${{ secrets.docker-username }} - password: ${{ secrets.docker-password }} - - name: Publish tarball image - uses: bakdata/ci-templates/actions/docker-publish@1.49.0 - with: - docker-registry: ${{ inputs.docker-registry }} - image-namespace: ${{ inputs.docker-publisher }} - release: name: Create Github release if: startsWith(github.ref, 'refs/tags/') From 61e8221e25b5313d34d5b25a651556846551292e Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 14:13:48 +0100 Subject: [PATCH 06/13] Use new jib plugin --- .github/workflows/java-gradle-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/java-gradle-docker.yaml b/.github/workflows/java-gradle-docker.yaml index 679f3b08a..b37066f10 100644 --- a/.github/workflows/java-gradle-docker.yaml +++ b/.github/workflows/java-gradle-docker.yaml @@ -156,7 +156,7 @@ jobs: name: Create Github release if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-22.04 - needs: [publish, publish-jib-image] + needs: [publish, build-jib] steps: - name: Release on Github From 17b0c64243dbdf470d76bbb7000e53cee16cad05 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 14:22:53 +0100 Subject: [PATCH 07/13] Use new jib plugin --- .github/workflows/java-gradle-docker.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/java-gradle-docker.yaml b/.github/workflows/java-gradle-docker.yaml index b37066f10..f66f1ced9 100644 --- a/.github/workflows/java-gradle-docker.yaml +++ b/.github/workflows/java-gradle-docker.yaml @@ -13,6 +13,11 @@ on: required: false type: string default: "docker.io" + platforms: + description: "Architectures for the created image (comma separated)" + required: false + default: "linux/amd64,linux/arm64" + type: string java-distribution: description: "Java distribution to be installed. (Default is microsoft)" required: false @@ -129,6 +134,7 @@ jobs: gradle-refresh-dependencies: ${{ inputs.gradle-refresh-dependencies }} working-directory: ${{ inputs.working-directory }} repository: ${{ inputs.docker-registry }}/${{ inputs.docker-publisher }} + platforms: ${{ inputs.platforms }} publish: name: Publish From 1fc53181997028671158992137092c4cfccc709c Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 14:28:53 +0100 Subject: [PATCH 08/13] Use new jib plugin --- docs/workflows/java-gradle-docker/README.md | 23 +++++++++++---------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/workflows/java-gradle-docker/README.md b/docs/workflows/java-gradle-docker/README.md index 18f9d30a0..54afb943a 100644 --- a/docs/workflows/java-gradle-docker/README.md +++ b/docs/workflows/java-gradle-docker/README.md @@ -58,17 +58,18 @@ jobs: -| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION | -| --------------------------- | ------- | -------- | ------------- | ------------------------------------------------------------------------------------------------- | -| docker-publisher | string | true | | Publisher to prefix Docker image. | -| docker-registry | string | false | `"docker.io"` | Host where the image should be pushed to. | -| gradle-cache | boolean | false | `true` | Whether Gradle caching is enabled or not. (Default is true) | -| gradle-cache-read-only | boolean | false | `false` | Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false) | -| gradle-refresh-dependencies | boolean | false | `false` | Whether Gradle should refresh dependencies. (Default is false) | -| gradle-version | string | false | `"wrapper"` | Gradle version to be installed. (Default is wrapper) | -| java-distribution | string | false | `"microsoft"` | Java distribution to be installed. (Default is microsoft) | -| java-version | string | false | `"11"` | Java version to be installed. (Default is 11) | -| working-directory | string | false | `"."` | Working directory of your Gradle artifacts. (Default is .) | +| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION | +| --------------------------- | ------- | -------- | --------------------------- | ------------------------------------------------------------------------------------------------- | +| docker-publisher | string | true | | Publisher to prefix Docker image. | +| docker-registry | string | false | `"docker.io"` | Host where the image should be pushed to. | +| gradle-cache | boolean | false | `true` | Whether Gradle caching is enabled or not. (Default is true) | +| gradle-cache-read-only | boolean | false | `false` | Whether Gradle caching should be read-only. Only used for build and test jobs. (Default is false) | +| gradle-refresh-dependencies | boolean | false | `false` | Whether Gradle should refresh dependencies. (Default is false) | +| gradle-version | string | false | `"wrapper"` | Gradle version to be installed. (Default is wrapper) | +| java-distribution | string | false | `"microsoft"` | Java distribution to be installed. (Default is microsoft) | +| java-version | string | false | `"11"` | Java version to be installed. (Default is 11) | +| platforms | string | false | `"linux/amd64,linux/arm64"` | Architectures for the created image (comma separated) | +| working-directory | string | false | `"."` | Working directory of your Gradle artifacts. (Default is .) | From 68d61508bf5501a8d4f7059e3e93f1a662ce0fce Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 14:43:35 +0100 Subject: [PATCH 09/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index 9b554d4b7..b2ec3bb6f 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -4,7 +4,7 @@ description: "Build Multi-Platform image using Gradle" outputs: image-tag: description: "The tag of the docker image." - value: ${{ steps.meta.outputs.tags }} # FIXME output contains wrong image name + value: ${{ steps.tag.outputs.name }} inputs: platforms: @@ -88,6 +88,12 @@ runs: flavor: | latest=false + - name: Create tag output + id: tag + run: echo "name=$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*:\(.*\)/\1/')" >> "$GITHUB_OUTPUT" + shell: bash + working-directory: ${{ inputs.working-directory }} + - name: Build Docker image run: | ./gradlew ${{ inputs.subproject && format('{0}:', inputs.subproject) || '' }}jib \ @@ -96,7 +102,7 @@ runs: ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ ${{ inputs.class && format('-Djib.container.mainClass={0}', inputs.class) || '' }} \ ${{ inputs.repository && format('-Djib.to.image.repository={0}', inputs.repository) || '' }} \ - -Djib.to.image.tag=$(echo ${{ steps.meta.outputs.tags }} | sed 's/.*:\(.*\)/\1/') \ + -Djib.to.image.tag=${{ steps.tag.outputs.name }} \ $([[ "${{ github.ref_type }}" == "tag" ]] && echo "-Djib.to.tags=latest") \ ${{ inputs.gradle-refresh-dependencies == 'true' && '--refresh-dependencies' || '' }} \ ${{ inputs.allow-insecure-registries == 'true' && '-Djib.allowInsecureRegistries=true' || '' }} From c4c51805b52ce9d88d88cda1bfd375639134bd07 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 15:23:44 +0100 Subject: [PATCH 10/13] Use new jib plugin --- .github/workflows/java-gradle-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/java-gradle-docker.yaml b/.github/workflows/java-gradle-docker.yaml index f66f1ced9..287b9ee22 100644 --- a/.github/workflows/java-gradle-docker.yaml +++ b/.github/workflows/java-gradle-docker.yaml @@ -124,7 +124,7 @@ jobs: - name: Jib build id: build-image - uses: bakdata/ci-templates/actions/java-gradle-build-jib@feature/jib-plugin + uses: bakdata/ci-templates/actions/java-gradle-build-jib@1.55.0 with: java-distribution: ${{ inputs.java-distribution }} java-version: ${{ inputs.java-version }} From 1e886982815cbd881be3acb3dec577b483b599a5 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 16:23:49 +0100 Subject: [PATCH 11/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 5 +---- docs/actions/java-gradle-build-jib/README.md | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index b2ec3bb6f..a554bcc1e 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -57,9 +57,6 @@ inputs: description: "Whether the Git checkout action should resolve LFS files or not. (Default is false)" required: false default: "false" - subproject: - description: "The Gradle subproject for which the image should be built (If not specified, an image for the root project will be built)" - required: false runs: using: "composite" steps: @@ -96,7 +93,7 @@ runs: - name: Build Docker image run: | - ./gradlew ${{ inputs.subproject && format('{0}:', inputs.subproject) || '' }}jib \ + ./gradlew jib \ --info --stacktrace \ -Djib.from.platforms=${{ inputs.platforms }} \ ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ diff --git a/docs/actions/java-gradle-build-jib/README.md b/docs/actions/java-gradle-build-jib/README.md index 8ad610118..6b92155cc 100644 --- a/docs/actions/java-gradle-build-jib/README.md +++ b/docs/actions/java-gradle-build-jib/README.md @@ -18,7 +18,6 @@ | jib-from-image | string | false | | The Jib base image to use | | platforms | string | false | `"linux/amd64,linux/arm64"` | Architectures for the created image (comma separated) | | repository | string | false | | The repository to push the image to | -| subproject | string | false | | The Gradle subproject for which the image should be built (If not specified, an image for the root project will be built) | | working-directory | string | false | `"."` | Working directory of your Gradle artifacts. (Default is .) | From 0d281660c71675a2f61884ccc927aeb0bc7df190 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Mon, 20 Jan 2025 19:13:13 +0100 Subject: [PATCH 12/13] Use new jib plugin --- actions/java-gradle-build-jib/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index a554bcc1e..32affb831 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -98,8 +98,8 @@ runs: -Djib.from.platforms=${{ inputs.platforms }} \ ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ ${{ inputs.class && format('-Djib.container.mainClass={0}', inputs.class) || '' }} \ - ${{ inputs.repository && format('-Djib.to.image.repository={0}', inputs.repository) || '' }} \ - -Djib.to.image.tag=${{ steps.tag.outputs.name }} \ + ${{ inputs.repository && format('-DDjibImage.repository={0}', inputs.repository) || '' }} \ + -DjibImage.tag=${{ steps.tag.outputs.name }} \ $([[ "${{ github.ref_type }}" == "tag" ]] && echo "-Djib.to.tags=latest") \ ${{ inputs.gradle-refresh-dependencies == 'true' && '--refresh-dependencies' || '' }} \ ${{ inputs.allow-insecure-registries == 'true' && '-Djib.allowInsecureRegistries=true' || '' }} From 8628f5ef68563e291aeb2653f06634a66992d6b0 Mon Sep 17 00:00:00 2001 From: Philipp Schirmer Date: Tue, 21 Jan 2025 10:05:18 +0100 Subject: [PATCH 13/13] Update actions/java-gradle-build-jib/action.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yannick Röder <33963579+yannick-roeder@users.noreply.github.com> --- actions/java-gradle-build-jib/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/java-gradle-build-jib/action.yaml b/actions/java-gradle-build-jib/action.yaml index 32affb831..3b2f2d5d7 100644 --- a/actions/java-gradle-build-jib/action.yaml +++ b/actions/java-gradle-build-jib/action.yaml @@ -98,7 +98,7 @@ runs: -Djib.from.platforms=${{ inputs.platforms }} \ ${{ inputs.jib-from-image && format('-Djib.from.image={0}', inputs.jib-from-image) || '' }} \ ${{ inputs.class && format('-Djib.container.mainClass={0}', inputs.class) || '' }} \ - ${{ inputs.repository && format('-DDjibImage.repository={0}', inputs.repository) || '' }} \ + ${{ inputs.repository && format('-DjibImage.repository={0}', inputs.repository) || '' }} \ -DjibImage.tag=${{ steps.tag.outputs.name }} \ $([[ "${{ github.ref_type }}" == "tag" ]] && echo "-Djib.to.tags=latest") \ ${{ inputs.gradle-refresh-dependencies == 'true' && '--refresh-dependencies' || '' }} \