This is an automated email from the ASF dual-hosted git repository.

damccorm pushed a commit to branch users/damccorm/splitContainerPush
in repository https://gitbox.apache.org/repos/asf/beam.git

commit b0ba28c6bc513a6d087680d32142290f7c93c1d3
Author: Danny Mccormick <[email protected]>
AuthorDate: Wed Feb 26 10:28:12 2025 -0500

    Enable splitting up docker publish workflow
---
 .../republish_released_docker_containers.yml         | 12 ++++++++++--
 build.gradle.kts                                     | 20 +++++++++++++++-----
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/republish_released_docker_containers.yml 
b/.github/workflows/republish_released_docker_containers.yml
index f87f4af220c..dc9228e3371 100644
--- a/.github/workflows/republish_released_docker_containers.yml
+++ b/.github/workflows/republish_released_docker_containers.yml
@@ -39,6 +39,14 @@ jobs:
 
   build:
     runs-on: ubuntu-22.04
+    strategy:
+      fail-fast: false
+      matrix:
+        images_to_publish: [
+          {"gradle_task": ":pushAllRunnersDockerImages", "skip_flags": ""},
+          {"gradle_task": ":pushAllSdkDockerImages", "skip_flags": ""},
+          {"gradle_task": ":pushAllDockerImages", "skip_flags": 
"-Pskip-runner-images -Pskip-sdk-images"}
+        ]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -73,10 +81,10 @@ jobs:
           gcloud auth configure-docker ${{ env.docker_registry }}
       - name: Push docker images
         run: |
-          ./gradlew :pushAllDockerImages \
+          ./gradlew ${{ matrix.images_to_publish.gradle_task }} \
           -PisRelease \
           -Pdocker-pull-licenses \
-          -Pprune-images \
+          -Pprune-images ${{ matrix.images_to_publish.skip_flags }} \
           
-Pdocker-repository-root=gcr.io/apache-beam-testing/updated_released_container_images
 \
           -Pdocker-tag-list=${{ env.release }},${{ github.sha }},$(date 
+'%Y-%m-%d') \
           --no-daemon \
diff --git a/build.gradle.kts b/build.gradle.kts
index d230f32ea9b..209cb2b9593 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -598,7 +598,9 @@ tasks.register("pushAllRunnersDockerImages") {
 tasks.register("pushAllSdkDockerImages") {
   // Enforce ordering to allow the prune step to happen between runs.
   // This will ensure we don't use up too much space (especially in CI 
environments)
-  mustRunAfter(":pushAllRunnersDockerImages")
+  if (!project.hasProperty("skip-runner-images")) {
+    mustRunAfter(":pushAllRunnersDockerImages")
+  }
 
   dependsOn(":sdks:java:container:pushAll")
   dependsOn(":sdks:python:container:pushAll")
@@ -618,7 +620,9 @@ tasks.register("pushAllSdkDockerImages") {
 tasks.register("pushAllXlangDockerImages") {
   // Enforce ordering to allow the prune step to happen between runs.
   // This will ensure we don't use up too much space (especially in CI 
environments)
-  mustRunAfter(":pushAllSdkDockerImages")
+  if (!project.hasProperty("skip-sdk-images")) {
+    mustRunAfter(":pushAllSdkDockerImages")
+  }
 
   dependsOn(":sdks:java:expansion-service:container:docker")
   dependsOn(":sdks:java:transform-service:controller-container:docker")
@@ -635,9 +639,15 @@ tasks.register("pushAllXlangDockerImages") {
 }
 
 tasks.register("pushAllDockerImages") {
-  dependsOn(":pushAllRunnersDockerImages")
-  dependsOn(":pushAllSdkDockerImages")
-  dependsOn(":pushAllXlangDockerImages")
+  if (!project.hasProperty("skip-runner-images")) {
+    dependsOn(":pushAllRunnersDockerImages")
+  }
+  if (!project.hasProperty("skip-sdk-images")) {
+    dependsOn(":pushAllSdkDockerImages")
+  }
+  if (!project.hasProperty("skip-xlang-images")) {
+    dependsOn(":pushAllXlangDockerImages")
+  }
 }
 
 // Use this task to validate the environment set up for Go, Python and Java

Reply via email to