From 2a9dbac32017a4aca83253ae66c48f611dd09007 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:12:24 +0000 Subject: [PATCH 1/4] Initial plan From e9e0162e3d2f3b91f03e5ad913f2efa49a22fb8f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:22:03 +0000 Subject: [PATCH 2/4] Initial analysis: Add multi-platform Docker support for smoke-test-fake-backend Co-authored-by: trask <218610+trask@users.noreply.github.com> --- build-scan.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 build-scan.txt diff --git a/build-scan.txt b/build-scan.txt new file mode 100644 index 000000000000..ee5a2e0f3fe6 --- /dev/null +++ b/build-scan.txt @@ -0,0 +1 @@ +https://gradle.com/s/ptvuhb3m7lf5e From 35ed101862d33dc86eb6ebe9183de376759b4282 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:31:44 +0000 Subject: [PATCH 3/4] Add multi-platform Docker support for smoke-test-fake-backend Co-authored-by: trask <218610+trask@users.noreply.github.com> --- .../pr-smoke-test-fake-backend-images.yml | 11 +++++- ...publish-smoke-test-fake-backend-images.yml | 11 +++++- build-scan.txt | 2 +- .../images/fake-backend/build.gradle.kts | 38 +++++++++++++++++++ .../src/docker/backend/Dockerfile | 3 ++ 5 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 smoke-tests/images/fake-backend/src/docker/backend/Dockerfile diff --git a/.github/workflows/pr-smoke-test-fake-backend-images.yml b/.github/workflows/pr-smoke-test-fake-backend-images.yml index 2c53cb9be305..59174c5e2228 100644 --- a/.github/workflows/pr-smoke-test-fake-backend-images.yml +++ b/.github/workflows/pr-smoke-test-fake-backend-images.yml @@ -18,6 +18,12 @@ jobs: - name: Free disk space run: .github/scripts/gha-free-disk-space.sh + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + + - name: Set up QEMU + uses: docker/setup-qemu-action@74864c85e1b5b09616e0e31b99c23db4e95b1011 # v3.2.0 + - name: Set up JDK for running Gradle uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: @@ -29,9 +35,12 @@ jobs: with: cache-read-only: true - - name: Build Docker image + - name: Build Docker image (Jib - backward compatibility) run: ./gradlew :smoke-tests:images:fake-backend:jibDockerBuild -Djib.httpTimeout=120000 -Djib.console=plain + - name: Build multi-platform Docker image + run: ./gradlew :smoke-tests:images:fake-backend:linuxBackendMultiPlatformImageBuild + buildWindows: runs-on: windows-latest defaults: diff --git a/.github/workflows/publish-smoke-test-fake-backend-images.yml b/.github/workflows/publish-smoke-test-fake-backend-images.yml index 2d229941ce7d..537d64f4e1f4 100644 --- a/.github/workflows/publish-smoke-test-fake-backend-images.yml +++ b/.github/workflows/publish-smoke-test-fake-backend-images.yml @@ -24,6 +24,12 @@ jobs: - name: Free disk space run: .github/scripts/gha-free-disk-space.sh + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + + - name: Set up QEMU + uses: docker/setup-qemu-action@74864c85e1b5b09616e0e31b99c23db4e95b1011 # v3.2.0 + - name: Set up JDK for running Gradle uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: @@ -43,9 +49,12 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - - name: Build Docker image + - name: Build Docker image (Jib - backward compatibility) run: ./gradlew :smoke-tests:images:fake-backend:jib -Djib.httpTimeout=120000 -Djib.console=plain -PextraTag=${{ env.TAG }} + - name: Build and push multi-platform Docker image + run: ./gradlew :smoke-tests:images:fake-backend:linuxBackendMultiPlatformImagePush -PextraTag=${{ env.TAG }} + publishWindows: permissions: contents: read diff --git a/build-scan.txt b/build-scan.txt index ee5a2e0f3fe6..18bb43267c0c 100644 --- a/build-scan.txt +++ b/build-scan.txt @@ -1 +1 @@ -https://gradle.com/s/ptvuhb3m7lf5e +https://gradle.com/s/v3xt7ktme2kny diff --git a/smoke-tests/images/fake-backend/build.gradle.kts b/smoke-tests/images/fake-backend/build.gradle.kts index 647274ec0e5c..fcbcf7425f9f 100644 --- a/smoke-tests/images/fake-backend/build.gradle.kts +++ b/smoke-tests/images/fake-backend/build.gradle.kts @@ -71,4 +71,42 @@ tasks { dependsOn(windowsBackendImageBuild) images.add("ghcr.io/$repo/smoke-test-fake-backend-windows:$extraTag") } + + val linuxBackendImagePrepare by registering(Copy::class) { + dependsOn(shadowJar) + into(backendDockerBuildDir) + from("src/docker/backend") + from(shadowJar.get().outputs) { + rename { "fake-backend.jar" } + } + } + + val linuxBackendMultiPlatformImageBuild by registering(Exec::class) { + dependsOn(linuxBackendImagePrepare) + group = "docker" + description = "Build multi-platform Linux Docker image for the test backend" + workingDir(backendDockerBuildDir) + commandLine( + "docker", "buildx", "build", + "--platform", "linux/amd64,linux/arm64", + "--tag", "ghcr.io/$repo/smoke-test-fake-backend:$extraTag", + "--file", "Dockerfile", + "." + ) + } + + val linuxBackendMultiPlatformImagePush by registering(Exec::class) { + dependsOn(linuxBackendImagePrepare) + group = "publishing" + description = "Build and push multi-platform Linux Docker image for the test backend" + workingDir(backendDockerBuildDir) + commandLine( + "docker", "buildx", "build", + "--platform", "linux/amd64,linux/arm64", + "--tag", "ghcr.io/$repo/smoke-test-fake-backend:$extraTag", + "--file", "Dockerfile", + "--push", + "." + ) + } } diff --git a/smoke-tests/images/fake-backend/src/docker/backend/Dockerfile b/smoke-tests/images/fake-backend/src/docker/backend/Dockerfile new file mode 100644 index 000000000000..ce88535f1a74 --- /dev/null +++ b/smoke-tests/images/fake-backend/src/docker/backend/Dockerfile @@ -0,0 +1,3 @@ +FROM eclipse-temurin:11-jre +COPY fake-backend.jar /fake-backend.jar +CMD ["java", "-jar", "/fake-backend.jar"] \ No newline at end of file From d76867713893f5102c37e508a886da23107e09d1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:35:12 +0000 Subject: [PATCH 4/4] Complete multi-platform Docker support implementation and testing Co-authored-by: trask <218610+trask@users.noreply.github.com> --- build-scan.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-scan.txt b/build-scan.txt index 18bb43267c0c..7058a2d8c18d 100644 --- a/build-scan.txt +++ b/build-scan.txt @@ -1 +1 @@ -https://gradle.com/s/v3xt7ktme2kny +https://gradle.com/s/wkoqcfy2t2l3a