Log in to docker.com as late as possible
authorPablo Zmdl <redacted>
Wed, 11 Jun 2025 12:39:24 +0000 (14:39 +0200)
committerPablo Zmdl <redacted>
Wed, 11 Jun 2025 13:03:13 +0000 (15:03 +0200)
Apparently we only benefit from automatic upstream image caching if the
job is not authenticated.

.github/workflows/build-and-publish-nightly.yml
.github/workflows/build.yml
.github/workflows/test.yml

index 056674fee8a6beb250a525cbabf0e78b89a11428..31ef4e00b630582ad13650bc3a2a910c499897a5 100644 (file)
@@ -15,16 +15,6 @@ jobs:
     steps:
       - name: Checkout repository
         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-      - name: Get docker hub username
-        id: creds
-        run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}'
-      - name: Login to Docker Hub
-        if: steps.creds.outputs.username != ''
-        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
-        with:
-          username: ${{ secrets.DOCKER_PULL_USERNAME }}
-          password: ${{ secrets.DOCKER_PUSH_PASSWORD }}
-
       - name: Set up QEMU
         uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
       - name: Set up Docker Buildx
@@ -47,6 +37,17 @@ jobs:
           ROUNDCUBEMAIL_TEST_IMAGE: roundcube/roundcubemail:nightly
         run: docker compose -f ./tests/docker-compose.test-apache-postgres.yml up --exit-code-from=sut --abort-on-container-exit
 
+      # Only log into docker now, so we benefit from the automatic caching of upstream images.
+      - name: Get docker hub username
+        id: creds
+        run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}'
+      - name: Login to Docker Hub
+        if: steps.creds.outputs.username != ''
+        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
+        with:
+          username: ${{ secrets.DOCKER_PULL_USERNAME }}
+          password: ${{ secrets.DOCKER_PUSH_PASSWORD }}
+
       - name: Build and push nightly images for all platforms
         uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
         with:
index ffbdccf7b9d536f449b5db4cb81c617d271ec9bb..100b1473d6dd432f8f73f98cd41c468f7e9e732e 100644 (file)
@@ -56,16 +56,6 @@ jobs:
     steps:
       - name: Checkout repository
         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-      - name: Get docker hub username
-        id: creds
-        run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}'
-      - name: Login to Docker Hub
-        if: steps.creds.outputs.username != ''
-        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
-        with:
-          username: ${{ secrets.DOCKER_PULL_USERNAME }}
-          password: ${{ secrets.DOCKER_PUSH_PASSWORD }}
-
       - name: Set up QEMU
         uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
       - name: Set up Docker Buildx
@@ -95,6 +85,17 @@ jobs:
             up --exit-code-from=sut --abort-on-container-exit
           done
 
+      # Only log into docker now, so we benefit from the automatic caching of upstream images.
+      - name: Get docker hub username
+        id: creds
+        run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}'
+      - name: Login to Docker Hub
+        if: steps.creds.outputs.username != ''
+        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
+        with:
+          username: ${{ secrets.DOCKER_PULL_USERNAME }}
+          password: ${{ secrets.DOCKER_PUSH_PASSWORD }}
+
       - name: Build and push rootful images for "${{ matrix.variant }} for all platforms"
         uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
         with:
index 79b9a76255360520a5a43cf8e72578332604d083..d7c2c0fb5ec36e7b26b31aac9a6f7dfc2c69cbd8 100644 (file)
@@ -38,15 +38,6 @@ jobs:
     steps:
       - name: Checkout repository
         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-      - name: Get docker hub username
-        id: creds
-        run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}'
-      - name: Login to Docker Hub
-        if: steps.creds.outputs.username != ''
-        uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
-        with:
-          username: ${{ secrets.DOCKER_PULL_USERNAME }}
-          password: ${{ secrets.DOCKER_PULL_PASSWORD }}
 
       - name: Build rootful image for "${{ matrix.variant }}"
         uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
git clone https://git.99rst.org/PROJECT