From ad72d168a127c25ef382774744fb5b983d6ae6c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 09:17:16 +0000 Subject: [PATCH 01/12] Propagate same-run parent images to children via OCI build-context artifacts Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 2533 ++++++++++++++++++++++++++++- ci/src/Commands/GithubCommand.php | 1 + ci/src/GithubJobBuilder.php | 132 +- 3 files changed, 2580 insertions(+), 86 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7240a40b1..80b842a5f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/apache:alpine (${{ matrix.arch }})' - needs: base_alpine_publish + needs: + - base_alpine + - base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -49,8 +51,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/apache/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/apache:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/apache/alpine @@ -60,6 +82,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -128,7 +151,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base-app:alpine (${{ matrix.arch }})' - needs: base_alpine_publish + needs: + - base_alpine + - base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -137,8 +162,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base-app/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/base-app:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/alpine @@ -148,6 +193,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -221,7 +267,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base-app:ubuntu-22.04 (${{ matrix.arch }})' - needs: base_ubuntu-22-04_publish + needs: + - base_ubuntu-22-04 + - base_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -230,8 +278,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base-app/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/base-app:sha-${{ github.sha }}-${{ matrix.arch }}-ubuntu-22.04' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -241,6 +309,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- @@ -266,6 +335,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/base-app:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base-app/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' + retention-days: 1 + compression-level: 0 + if-no-files-found: error base-app_ubuntu-22-04_publish: name: 'webdevops/base-app:ubuntu-22.04 - Publish' runs-on: ubuntu-latest @@ -316,7 +406,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base:alpine (${{ matrix.arch }})' - needs: bootstrap_alpine_publish + needs: + - bootstrap_alpine + - bootstrap_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -325,8 +417,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/bootstrap_alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -336,6 +436,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/bootstrap:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -361,6 +474,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base/alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-base_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error base_alpine_publish: name: 'webdevops/base:alpine - Publish' runs-on: ubuntu-latest @@ -409,7 +543,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base:ubuntu-22.04 (${{ matrix.arch }})' - needs: bootstrap_ubuntu-22-04_publish + needs: + - bootstrap_ubuntu-22-04 + - bootstrap_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -418,8 +554,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}-ubuntu-22.04' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -429,6 +585,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- @@ -454,6 +611,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/base/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + retention-days: 1 + compression-level: 0 + if-no-files-found: error base_ubuntu-22-04_publish: name: 'webdevops/base:ubuntu-22.04 - Publish' runs-on: ubuntu-latest @@ -504,7 +682,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/bootstrap:alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -513,8 +693,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -524,6 +724,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -549,6 +750,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/bootstrap_alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/bootstrap_alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error bootstrap_alpine_publish: name: 'webdevops/bootstrap:alpine - Publish' runs-on: ubuntu-latest @@ -597,7 +819,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/bootstrap:ubuntu-22.04 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -606,8 +830,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-ubuntu-22.04' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -617,6 +861,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -642,6 +887,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' + retention-days: 1 + compression-level: 0 + if-no-files-found: error bootstrap_ubuntu-22-04_publish: name: 'webdevops/bootstrap:ubuntu-22.04 - Publish' runs-on: ubuntu-latest @@ -692,7 +958,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/dockerfile-build-env:latest (${{ matrix.arch }})' - needs: base-app_ubuntu-22-04_publish + needs: + - base-app_ubuntu-22-04 + - base-app_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -701,8 +969,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/dockerfile-build-env/latest + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/dockerfile-build-env:sha-${{ github.sha }}-${{ matrix.arch }}-latest' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/dockerfile-build-env/latest @@ -712,6 +1000,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base-app:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04:ci-parent-image' - if: "${{github.ref == 'refs/heads/master'}}" name: 'Login to ghcr.io' @@ -772,7 +1061,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/nginx:alpine (${{ matrix.arch }})' - needs: base_alpine_publish + needs: + - base_alpine + - base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -781,8 +1072,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base_alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/nginx/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/nginx:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/nginx/alpine @@ -792,6 +1103,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -860,7 +1172,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.1 (${{ matrix.arch }})' - needs: php-apache_8-1_publish + needs: + - php-apache_8-1 + - php-apache_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -869,8 +1183,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1 @@ -880,6 +1202,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -914,7 +1249,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.1-alpine (${{ matrix.arch }})' - needs: php-apache_8-1-alpine_publish + needs: + - php-apache_8-1-alpine + - php-apache_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -923,8 +1260,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1-alpine @@ -934,6 +1291,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1036,7 +1394,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.2 (${{ matrix.arch }})' - needs: php-apache_8-2_publish + needs: + - php-apache_8-2 + - php-apache_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1045,8 +1405,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2 @@ -1056,6 +1436,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -1090,7 +1471,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.2-alpine (${{ matrix.arch }})' - needs: php-apache_8-2-alpine_publish + needs: + - php-apache_8-2-alpine + - php-apache_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1099,8 +1482,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2-alpine @@ -1110,6 +1513,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1212,7 +1616,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.3 (${{ matrix.arch }})' - needs: php-apache_8-3_publish + needs: + - php-apache_8-3 + - php-apache_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1221,8 +1627,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3 @@ -1232,6 +1646,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -1266,7 +1693,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.3-alpine (${{ matrix.arch }})' - needs: php-apache_8-3-alpine_publish + needs: + - php-apache_8-3-alpine + - php-apache_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1275,8 +1704,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3-alpine @@ -1286,6 +1735,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1388,7 +1838,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.4 (${{ matrix.arch }})' - needs: php-apache_8-4_publish + needs: + - php-apache_8-4 + - php-apache_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1397,8 +1849,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4 @@ -1408,6 +1880,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -1442,7 +1915,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.4-alpine (${{ matrix.arch }})' - needs: php-apache_8-4-alpine_publish + needs: + - php-apache_8-4-alpine + - php-apache_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1451,8 +1926,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4-alpine @@ -1462,6 +1957,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1564,7 +2060,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.5 (${{ matrix.arch }})' - needs: php-apache_8-5_publish + needs: + - php-apache_8-5 + - php-apache_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1573,8 +2071,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5 @@ -1584,6 +2090,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -1618,7 +2137,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.5-alpine (${{ matrix.arch }})' - needs: php-apache_8-5-alpine_publish + needs: + - php-apache_8-5-alpine + - php-apache_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1627,8 +2148,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache-dev/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5-alpine @@ -1638,6 +2179,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-apache:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1740,7 +2282,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.1 (${{ matrix.arch }})' - needs: php_8-1_publish + needs: + - php_8-1 + - php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1749,8 +2293,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -1760,6 +2324,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -1780,6 +2345,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.1 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-1-alpine: strategy: fail-fast: false @@ -1794,7 +2380,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.1-alpine (${{ matrix.arch }})' - needs: php_8-1-alpine_publish + needs: + - php_8-1-alpine + - php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1803,8 +2391,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -1814,6 +2422,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1834,6 +2443,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.1-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-1-alpine_publish: name: 'webdevops/php-apache:8.1-alpine - Publish' runs-on: ubuntu-latest @@ -1916,7 +2546,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.2 (${{ matrix.arch }})' - needs: php_8-2_publish + needs: + - php_8-2 + - php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1925,8 +2557,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -1936,6 +2588,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -1956,6 +2609,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.2 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-2-alpine: strategy: fail-fast: false @@ -1970,7 +2644,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.2-alpine (${{ matrix.arch }})' - needs: php_8-2-alpine_publish + needs: + - php_8-2-alpine + - php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1979,8 +2655,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -1990,6 +2686,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2010,6 +2707,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.2-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-2-alpine_publish: name: 'webdevops/php-apache:8.2-alpine - Publish' runs-on: ubuntu-latest @@ -2092,7 +2810,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.3 (${{ matrix.arch }})' - needs: php_8-3_publish + needs: + - php_8-3 + - php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2101,8 +2821,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2112,6 +2840,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -2132,6 +2873,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.3 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-3-alpine: strategy: fail-fast: false @@ -2146,7 +2908,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.3-alpine (${{ matrix.arch }})' - needs: php_8-3-alpine_publish + needs: + - php_8-3-alpine + - php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2155,8 +2919,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2166,6 +2950,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2186,6 +2971,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.3-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-3-alpine_publish: name: 'webdevops/php-apache:8.3-alpine - Publish' runs-on: ubuntu-latest @@ -2268,7 +3074,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.4 (${{ matrix.arch }})' - needs: php_8-4_publish + needs: + - php_8-4 + - php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2277,8 +3085,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -2288,6 +3116,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -2308,6 +3137,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.4 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-4-alpine: strategy: fail-fast: false @@ -2322,7 +3172,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.4-alpine (${{ matrix.arch }})' - needs: php_8-4-alpine_publish + needs: + - php_8-4-alpine + - php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2331,8 +3183,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -2342,6 +3214,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2362,6 +3235,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.4-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-4-alpine_publish: name: 'webdevops/php-apache:8.4-alpine - Publish' runs-on: ubuntu-latest @@ -2444,7 +3338,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.5 (${{ matrix.arch }})' - needs: php_8-5_publish + needs: + - php_8-5 + - php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2453,8 +3349,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -2464,6 +3380,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -2484,6 +3401,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.5 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-5-alpine: strategy: fail-fast: false @@ -2498,7 +3436,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.5-alpine (${{ matrix.arch }})' - needs: php_8-5-alpine_publish + needs: + - php_8-5-alpine + - php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2507,8 +3447,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -2518,6 +3478,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2538,6 +3499,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-apache/8.5-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-apache_8-5-alpine_publish: name: 'webdevops/php-apache:8.5-alpine - Publish' runs-on: ubuntu-latest @@ -2620,7 +3602,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.1 (${{ matrix.arch }})' - needs: php_8-1_publish + needs: + - php_8-1 + - php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2629,8 +3613,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1 @@ -2640,6 +3644,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -2679,7 +3684,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.1-alpine (${{ matrix.arch }})' - needs: php_8-1-alpine_publish + needs: + - php_8-1-alpine + - php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2688,8 +3695,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1-alpine @@ -2699,6 +3726,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2806,7 +3834,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.2 (${{ matrix.arch }})' - needs: php_8-2_publish + needs: + - php_8-2 + - php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2815,8 +3845,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2 @@ -2826,6 +3876,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -2865,7 +3916,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.2-alpine (${{ matrix.arch }})' - needs: php_8-2-alpine_publish + needs: + - php_8-2-alpine + - php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2874,8 +3927,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2-alpine @@ -2885,6 +3958,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2992,7 +4066,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.3 (${{ matrix.arch }})' - needs: php_8-3_publish + needs: + - php_8-3 + - php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3001,8 +4077,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3 @@ -3012,6 +4108,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -3051,7 +4148,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.3-alpine (${{ matrix.arch }})' - needs: php_8-3-alpine_publish + needs: + - php_8-3-alpine + - php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3060,8 +4159,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3-alpine @@ -3071,6 +4190,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3178,7 +4298,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.4 (${{ matrix.arch }})' - needs: php_8-4_publish + needs: + - php_8-4 + - php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3187,8 +4309,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4 @@ -3198,6 +4340,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -3237,7 +4380,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.4-alpine (${{ matrix.arch }})' - needs: php_8-4-alpine_publish + needs: + - php_8-4-alpine + - php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3246,8 +4391,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4-alpine @@ -3257,6 +4410,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3364,7 +4530,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.5 (${{ matrix.arch }})' - needs: php_8-5_publish + needs: + - php_8-5 + - php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3373,8 +4541,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5 @@ -3384,6 +4572,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -3423,7 +4612,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.5-alpine (${{ matrix.arch }})' - needs: php_8-5-alpine_publish + needs: + - php_8-5-alpine + - php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3432,8 +4623,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-dev/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5-alpine @@ -3443,6 +4654,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3550,7 +4762,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.1 (${{ matrix.arch }})' - needs: php-nginx_8-1_publish + needs: + - php-nginx_8-1 + - php-nginx_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3559,8 +4773,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1 @@ -3570,6 +4804,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -3604,7 +4839,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.1-alpine (${{ matrix.arch }})' - needs: php-nginx_8-1-alpine_publish + needs: + - php-nginx_8-1-alpine + - php-nginx_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3613,8 +4850,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1-alpine @@ -3624,6 +4881,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3726,7 +4984,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.2 (${{ matrix.arch }})' - needs: php-nginx_8-2_publish + needs: + - php-nginx_8-2 + - php-nginx_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3735,8 +4995,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2 @@ -3746,6 +5014,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -3780,7 +5061,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.2-alpine (${{ matrix.arch }})' - needs: php-nginx_8-2-alpine_publish + needs: + - php-nginx_8-2-alpine + - php-nginx_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3789,8 +5072,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2-alpine @@ -3800,6 +5103,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3902,7 +5206,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.3 (${{ matrix.arch }})' - needs: php-nginx_8-3_publish + needs: + - php-nginx_8-3 + - php-nginx_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3911,8 +5217,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3 @@ -3922,6 +5236,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -3956,7 +5283,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.3-alpine (${{ matrix.arch }})' - needs: php-nginx_8-3-alpine_publish + needs: + - php-nginx_8-3-alpine + - php-nginx_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3965,8 +5294,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3-alpine @@ -3976,6 +5313,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4078,7 +5428,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.4 (${{ matrix.arch }})' - needs: php-nginx_8-4_publish + needs: + - php-nginx_8-4 + - php-nginx_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4088,7 +5440,27 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Build (load locally)' + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + - + name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4 @@ -4098,6 +5470,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -4132,7 +5505,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.4-alpine (${{ matrix.arch }})' - needs: php-nginx_8-4-alpine_publish + needs: + - php-nginx_8-4-alpine + - php-nginx_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4141,8 +5516,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4-alpine @@ -4152,6 +5547,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4254,7 +5650,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.5 (${{ matrix.arch }})' - needs: php-nginx_8-5_publish + needs: + - php-nginx_8-5 + - php-nginx_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4263,8 +5661,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5 @@ -4274,6 +5680,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -4308,7 +5727,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.5-alpine (${{ matrix.arch }})' - needs: php-nginx_8-5-alpine_publish + needs: + - php-nginx_8-5-alpine + - php-nginx_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4317,8 +5738,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx-dev/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx-dev:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5-alpine @@ -4328,6 +5769,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php-nginx:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4430,7 +5872,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.1 (${{ matrix.arch }})' - needs: php_8-1_publish + needs: + - php_8-1 + - php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4439,8 +5883,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -4450,6 +5914,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -4475,6 +5940,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.1 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-1-alpine: strategy: fail-fast: false @@ -4489,7 +5975,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.1-alpine (${{ matrix.arch }})' - needs: php_8-1-alpine_publish + needs: + - php_8-1-alpine + - php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4498,8 +5986,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -4509,6 +6017,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4534,6 +6043,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.1-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-1-alpine_publish: name: 'webdevops/php-nginx:8.1-alpine - Publish' runs-on: ubuntu-latest @@ -4616,7 +6146,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.2 (${{ matrix.arch }})' - needs: php_8-2_publish + needs: + - php_8-2 + - php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4625,8 +6157,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -4636,6 +6188,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -4661,6 +6214,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.2 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-2-alpine: strategy: fail-fast: false @@ -4675,7 +6249,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.2-alpine (${{ matrix.arch }})' - needs: php_8-2-alpine_publish + needs: + - php_8-2-alpine + - php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4684,8 +6260,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -4695,6 +6291,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4720,6 +6317,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.2-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-2-alpine_publish: name: 'webdevops/php-nginx:8.2-alpine - Publish' runs-on: ubuntu-latest @@ -4802,7 +6420,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.3 (${{ matrix.arch }})' - needs: php_8-3_publish + needs: + - php_8-3 + - php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4811,8 +6431,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -4822,6 +6450,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -4847,6 +6488,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.3 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-3-alpine: strategy: fail-fast: false @@ -4861,7 +6523,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.3-alpine (${{ matrix.arch }})' - needs: php_8-3-alpine_publish + needs: + - php_8-3-alpine + - php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4870,8 +6534,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -4881,6 +6565,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4906,6 +6591,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.3-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-3-alpine_publish: name: 'webdevops/php-nginx:8.3-alpine - Publish' runs-on: ubuntu-latest @@ -4988,7 +6694,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.4 (${{ matrix.arch }})' - needs: php_8-4_publish + needs: + - php_8-4 + - php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4997,8 +6705,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -5008,6 +6736,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -5033,6 +6762,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.4 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-4-alpine: strategy: fail-fast: false @@ -5047,7 +6797,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.4-alpine (${{ matrix.arch }})' - needs: php_8-4-alpine_publish + needs: + - php_8-4-alpine + - php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5056,8 +6808,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -5067,6 +6839,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5092,6 +6865,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.4-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-4-alpine_publish: name: 'webdevops/php-nginx:8.4-alpine - Publish' runs-on: ubuntu-latest @@ -5174,7 +6968,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.5 (${{ matrix.arch }})' - needs: php_8-5_publish + needs: + - php_8-5 + - php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5183,8 +6979,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -5194,6 +7010,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -5219,6 +7036,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.5 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-5-alpine: strategy: fail-fast: false @@ -5233,7 +7071,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.5-alpine (${{ matrix.arch }})' - needs: php_8-5-alpine_publish + needs: + - php_8-5-alpine + - php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5242,8 +7082,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -5253,6 +7113,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5278,6 +7139,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-nginx/8.5-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php-nginx_8-5-alpine_publish: name: 'webdevops/php-nginx:8.5-alpine - Publish' runs-on: ubuntu-latest @@ -5360,7 +7242,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.1 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5369,8 +7253,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -5380,6 +7284,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5405,6 +7310,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-1' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-1-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-1-alpine: strategy: fail-fast: false @@ -5419,7 +7345,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.1-alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5428,8 +7356,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -5439,6 +7387,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5464,6 +7413,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-1-alpine_publish: name: 'webdevops/php:8.1-alpine - Publish' runs-on: ubuntu-latest @@ -5550,7 +7520,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.2 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5559,8 +7531,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -5570,6 +7550,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5595,6 +7588,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-2' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-2-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-2-alpine: strategy: fail-fast: false @@ -5609,7 +7623,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.2-alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5618,8 +7634,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -5629,6 +7665,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5654,6 +7691,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-2-alpine_publish: name: 'webdevops/php:8.2-alpine - Publish' runs-on: ubuntu-latest @@ -5740,7 +7798,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.3 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5749,8 +7809,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -5760,6 +7840,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5785,6 +7866,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-3' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-3-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-3-alpine: strategy: fail-fast: false @@ -5799,7 +7901,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.3-alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5808,8 +7912,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -5819,6 +7943,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5844,6 +7969,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-3-alpine_publish: name: 'webdevops/php:8.3-alpine - Publish' runs-on: ubuntu-latest @@ -5930,7 +8076,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.4 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5939,8 +8087,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -5950,6 +8118,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -5975,6 +8144,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-4' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-4-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-4-alpine: strategy: fail-fast: false @@ -5989,7 +8179,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.4-alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5998,8 +8190,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -6009,6 +8221,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -6034,6 +8247,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-4-alpine_publish: name: 'webdevops/php:8.4-alpine - Publish' runs-on: ubuntu-latest @@ -6120,7 +8354,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.5 (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6129,8 +8365,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -6140,6 +8396,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -6165,6 +8422,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5 + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-5' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-5-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-5-alpine: strategy: fail-fast: false @@ -6179,7 +8457,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.5-alpine (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6188,8 +8468,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -6199,6 +8499,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -6224,6 +8525,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5-alpine + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + retention-days: 1 + compression-level: 0 + if-no-files-found: error php_8-5-alpine_publish: name: 'webdevops/php:8.5-alpine - Publish' runs-on: ubuntu-latest @@ -6310,7 +8632,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/storage:latest (${{ matrix.arch }})' - needs: toolbox_latest_publish + needs: + - toolbox_latest + - toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6319,8 +8643,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/storage/latest @@ -6330,6 +8662,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/storage/latest + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/storage:sha-${{ github.sha }}-${{ matrix.arch }}-latest' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - if: "${{github.ref == 'refs/heads/master'}}" name: 'Login to ghcr.io' @@ -6422,6 +8767,27 @@ jobs: name: 'Push arch image' if: "${{github.ref == 'refs/heads/master'}}" run: 'docker push "ghcr.io/webdevops/toolbox:sha-${{ github.sha }}-${{ matrix.arch }}"-latest' + - + name: 'Export image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/toolbox/latest + platforms: '${{ matrix.platform }}' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/toolbox_latest' + - + name: 'Upload image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/upload-artifact@v4 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' + retention-days: 1 + compression-level: 0 + if-no-files-found: error toolbox_latest_publish: name: 'webdevops/toolbox:latest - Publish' runs-on: ubuntu-latest @@ -6470,7 +8836,9 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/vsftp:latest (${{ matrix.arch }})' - needs: base_ubuntu-22-04_publish + needs: + - base_ubuntu-22-04 + - base_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6479,8 +8847,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout)' + if: "${{ github.ref != 'refs/heads/master' }}" + uses: actions/download-artifact@v4 + with: + name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' + path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' - name: 'Build (load locally)' + if: "${{ github.ref == 'refs/heads/master' }}" + uses: docker/build-push-action@v6 + with: + context: docker/vsftp/latest + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/vsftp:sha-${{ github.sha }}-${{ matrix.arch }}-latest' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/vsftp/latest @@ -6490,6 +8878,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- diff --git a/ci/src/Commands/GithubCommand.php b/ci/src/Commands/GithubCommand.php index 65714205a..d9da29ace 100644 --- a/ci/src/Commands/GithubCommand.php +++ b/ci/src/Commands/GithubCommand.php @@ -82,6 +82,7 @@ private function traverse(Node $node): void $line = 'Processing ' . $node->getName(); $nodeAr = $node->toArray(); $nodeAr['level'] = $node->getLevel(); + $nodeAr['hasChildren'] = $node->hasChildren(); if ($node->getLevel() > $this->deepestLevel) { $this->deepestLevel = $node->getLevel(); } diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index f5679768e..b1e7217bf 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -10,6 +10,13 @@ class GithubJobBuilder { + /** + * Tag/annotation used when exporting a parent image as an OCI layout so + * that child jobs can deterministically reference the exported manifest + * instead of relying on Buildx picking an arbitrary entry from index.json. + */ + private const PARENT_OCI_TAG = 'ci-parent-image'; + /** * @return array> */ @@ -19,7 +26,10 @@ public function getJobsDescription(array $node): array $structuredTests = $this->structuredTests($node); $jobId = GithubJobBuilder::toJobId($node['name']); - $needs = ($node['parent'] ?? null) ? GithubJobBuilder::toJobId($node['parent']) . '_publish' : 'validate-automation'; + $hasParent = $this->hasInternalParent($node); + $hasChildren = !empty($node['hasChildren']); + $parentJobId = $hasParent ? GithubJobBuilder::toJobId($node['parent']) : null; + $needs = $hasParent ? [$parentJobId, $parentJobId . '_publish'] : 'validate-automation'; $pushTags = []; $pushTags[] = '-t "' . $node['id'] . '"'; @@ -58,21 +68,30 @@ public function getJobsDescription(array $node): array [ ['uses' => 'actions/checkout@v6'], ['uses' => 'docker/setup-buildx-action@v3'], - [ - 'name' => 'Build (load locally)', - 'uses' => 'docker/build-push-action@v6', + $hasParent ? [ + 'name' => 'Download parent image (OCI layout)', + 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'uses' => 'actions/download-artifact@v4', 'with' => [ - 'context' => dirname(str_replace(__DIR__ . '/../../', '', $node['file'])), - 'platforms' => '${{ matrix.platform }}', - 'load' => true, - 'tags' => 'ghcr.io/webdevops/' . $node['image'] . ':sha-${{ github.sha }}-${{ matrix.arch }}-' . $node['tag'], - 'cache-from' => 'type=gha', - 'cache-to' => 'type=gha,mode=max', - 'build-args' => implode("\n", [ - 'TARGETARCH=${{ matrix.arch }}', - ]), + 'name' => $this->getCiImageArtifactName($node['parent']), + 'path' => $this->getCiImagePath($node['parent']), ], - ], + ] : null, + array_filter([ + 'name' => 'Build (load locally)', + 'if' => $hasParent ? '${{ github.ref == \'refs/heads/master\' }}' : null, + 'uses' => 'docker/build-push-action@v6', + 'with' => $this->buildPushWith($node), + ]), + $hasParent ? [ + 'name' => 'Build (load locally, from parent artifact)', + 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'uses' => 'docker/build-push-action@v6', + 'with' => array_merge( + $this->buildPushWith($node), + ['build-contexts' => $this->parentBuildContext($node)], + ), + ] : null, $serverSpec ? [ 'name' => 'run serverspec', 'run' => implode("\n", $serverSpec), @@ -96,6 +115,33 @@ public function getJobsDescription(array $node): array 'if' => '${{github.ref == \'refs/heads/master\'}}', 'run' => 'docker push "ghcr.io/webdevops/' . $node['image'] . ':sha-${{ github.sha }}-${{ matrix.arch }}"-' . $node['tag'], ], + $hasChildren ? [ + 'name' => 'Export image (OCI layout)', + 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'uses' => 'docker/build-push-action@v6', + 'with' => [ + 'context' => dirname(str_replace(__DIR__ . '/../../', '', $node['file'])), + 'platforms' => '${{ matrix.platform }}', + 'cache-from' => 'type=gha', + 'cache-to' => 'type=gha,mode=max', + 'build-args' => implode("\n", [ + 'TARGETARCH=${{ matrix.arch }}', + ]), + 'outputs' => 'type=oci,tar=false,name=' . self::PARENT_OCI_TAG . ',dest=' . $this->getCiImagePath($node['id']), + ], + ] : null, + $hasChildren ? [ + 'name' => 'Upload image (OCI layout)', + 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'uses' => 'actions/upload-artifact@v4', + 'with' => [ + 'name' => $this->getCiImageArtifactName($node['id']), + 'path' => $this->getCiImagePath($node['id']), + 'retention-days' => 1, + 'compression-level' => 0, + 'if-no-files-found' => 'error', + ], + ] : null, ], ), ), @@ -156,6 +202,64 @@ public static function toJobId(string $name): string return $name; } + /** + * Common `docker/build-push-action` inputs shared by the local build step + * and the additional per-node variants (parent-context build, OCI export). + */ + private function buildPushWith(array $node): array + { + return [ + 'context' => dirname(str_replace(__DIR__ . '/../../', '', $node['file'])), + 'platforms' => '${{ matrix.platform }}', + 'load' => true, + 'tags' => 'ghcr.io/webdevops/' . $node['image'] . ':sha-${{ github.sha }}-${{ matrix.arch }}-' . $node['tag'], + 'cache-from' => 'type=gha', + 'cache-to' => 'type=gha,mode=max', + 'build-args' => implode("\n", [ + 'TARGETARCH=${{ matrix.arch }}', + ]), + ]; + } + + /** + * Whether the node's `FROM` statement points to another internal + * webdevops/* image built by this same workflow. + */ + private function hasInternalParent(array $node): bool + { + return (bool)($node['parent'] ?? null); + } + + /** + * Deterministic, filesystem/artifact-safe name for the image identified + * by $imageId (e.g. "webdevops/php:8.4"), unique per architecture so + * amd64/arm64 artifacts can never collide or be cross-consumed. + */ + private function getCiImageArtifactName(string $imageId): string + { + return 'docker-parent-' . GithubJobBuilder::toJobId($imageId) . '-${{ matrix.arch }}'; + } + + /** + * Predictable, collision-free extraction/export directory for the OCI + * layout of the image identified by $imageId. + */ + private function getCiImagePath(string $imageId): string + { + return '${{ runner.temp }}/ci-oci-image/' . GithubJobBuilder::toJobId($imageId); + } + + /** + * Buildx `build-contexts` entry that maps the exact parent reference used + * in the Dockerfile's `FROM` statement to the OCI layout downloaded from + * the parent job's artifact, so BuildKit never needs to pull the parent + * image from Docker Hub during non-master builds. + */ + private function parentBuildContext(array $node): string + { + return $node['parent'] . '=oci-layout://' . $this->getCiImagePath($node['parent']) . ':' . self::PARENT_OCI_TAG; + } + private function serverSpec(array $node): array { $specFile = sprintf('spec/docker/%s_spec.rb', $node['image']); From ad3f11b5880732686e8013edd927a7a4b321035c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 09:19:37 +0000 Subject: [PATCH 02/12] Pin actions/download-artifact to patched v4.1.9 (fixes arbitrary file write advisory) Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 142 +++++++++++++++++------------------ ci/src/GithubJobBuilder.php | 2 +- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 80b842a5f..ea00102bc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -54,7 +54,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base_alpine' @@ -165,7 +165,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base_alpine' @@ -281,7 +281,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' @@ -420,7 +420,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/bootstrap_alpine' @@ -557,7 +557,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' @@ -696,7 +696,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -833,7 +833,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -972,7 +972,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' @@ -1075,7 +1075,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base_alpine' @@ -1186,7 +1186,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1' @@ -1263,7 +1263,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' @@ -1408,7 +1408,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2' @@ -1485,7 +1485,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' @@ -1630,7 +1630,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3' @@ -1707,7 +1707,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' @@ -1852,7 +1852,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4' @@ -1929,7 +1929,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' @@ -2074,7 +2074,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5' @@ -2151,7 +2151,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' @@ -2296,7 +2296,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1' @@ -2394,7 +2394,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' @@ -2560,7 +2560,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2' @@ -2658,7 +2658,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' @@ -2824,7 +2824,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3' @@ -2922,7 +2922,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' @@ -3088,7 +3088,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4' @@ -3186,7 +3186,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' @@ -3352,7 +3352,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5' @@ -3450,7 +3450,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' @@ -3616,7 +3616,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1' @@ -3698,7 +3698,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' @@ -3848,7 +3848,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2' @@ -3930,7 +3930,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' @@ -4080,7 +4080,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3' @@ -4162,7 +4162,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' @@ -4312,7 +4312,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4' @@ -4394,7 +4394,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' @@ -4544,7 +4544,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5' @@ -4626,7 +4626,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' @@ -4776,7 +4776,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1' @@ -4853,7 +4853,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' @@ -4998,7 +4998,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2' @@ -5075,7 +5075,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' @@ -5220,7 +5220,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3' @@ -5297,7 +5297,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' @@ -5442,7 +5442,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4' @@ -5519,7 +5519,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' @@ -5664,7 +5664,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5' @@ -5741,7 +5741,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' @@ -5886,7 +5886,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1' @@ -5989,7 +5989,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' @@ -6160,7 +6160,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2' @@ -6263,7 +6263,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' @@ -6434,7 +6434,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3' @@ -6537,7 +6537,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' @@ -6708,7 +6708,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4' @@ -6811,7 +6811,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' @@ -6982,7 +6982,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5' @@ -7085,7 +7085,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' @@ -7256,7 +7256,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -7359,7 +7359,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -7534,7 +7534,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -7637,7 +7637,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -7812,7 +7812,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -7915,7 +7915,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8090,7 +8090,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8193,7 +8193,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8368,7 +8368,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8471,7 +8471,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8646,7 +8646,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' @@ -8850,7 +8850,7 @@ jobs: - name: 'Download parent image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index b1e7217bf..2e6e63fab 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -71,7 +71,7 @@ public function getJobsDescription(array $node): array $hasParent ? [ 'name' => 'Download parent image (OCI layout)', 'if' => '${{ github.ref != \'refs/heads/master\' }}', - 'uses' => 'actions/download-artifact@v4', + 'uses' => 'actions/download-artifact@v4.1.9', 'with' => [ 'name' => $this->getCiImageArtifactName($node['parent']), 'path' => $this->getCiImagePath($node['parent']), From 62f7eab96f2b05b6960cca06c863bcdffa361ecd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 09:54:04 +0000 Subject: [PATCH 03/12] Fix deep-chain OCI propagation and synthetic-parent false positives Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 296 +++--------------------------- ci/src/Commands/GithubCommand.php | 5 + ci/src/FileReader.php | 9 + ci/src/GithubJobBuilder.php | 60 +++--- 4 files changed, 74 insertions(+), 296 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ea00102bc..2c1fbb73e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -345,6 +345,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' - name: 'Upload image (OCI layout)' @@ -484,6 +485,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/bootstrap:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_alpine' - name: 'Upload image (OCI layout)' @@ -621,6 +623,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' - name: 'Upload image (OCI layout)' @@ -693,28 +696,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/bootstrap/alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -724,7 +707,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -830,16 +812,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -849,19 +823,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/bootstrap/ubuntu-22.04 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-ubuntu-22.04' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -2355,6 +2316,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1' - name: 'Upload image (OCI layout)' @@ -2453,6 +2415,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' - name: 'Upload image (OCI layout)' @@ -2619,6 +2582,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2' - name: 'Upload image (OCI layout)' @@ -2717,6 +2681,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' - name: 'Upload image (OCI layout)' @@ -2883,6 +2848,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3' - name: 'Upload image (OCI layout)' @@ -2981,6 +2947,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' - name: 'Upload image (OCI layout)' @@ -3147,6 +3114,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4' - name: 'Upload image (OCI layout)' @@ -3245,6 +3213,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' - name: 'Upload image (OCI layout)' @@ -3411,6 +3380,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5' - name: 'Upload image (OCI layout)' @@ -3509,6 +3479,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' - name: 'Upload image (OCI layout)' @@ -5950,6 +5921,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1' - name: 'Upload image (OCI layout)' @@ -6053,6 +6025,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' - name: 'Upload image (OCI layout)' @@ -6224,6 +6197,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2' - name: 'Upload image (OCI layout)' @@ -6327,6 +6301,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' - name: 'Upload image (OCI layout)' @@ -6498,6 +6473,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3' - name: 'Upload image (OCI layout)' @@ -6601,6 +6577,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' - name: 'Upload image (OCI layout)' @@ -6772,6 +6749,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4' - name: 'Upload image (OCI layout)' @@ -6875,6 +6853,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' - name: 'Upload image (OCI layout)' @@ -7046,6 +7025,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5' - name: 'Upload image (OCI layout)' @@ -7149,6 +7129,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' - name: 'Upload image (OCI layout)' @@ -7253,16 +7234,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7272,19 +7245,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.1 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7356,28 +7316,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.1-alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7387,7 +7327,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7531,28 +7470,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.2 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7562,7 +7481,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7634,16 +7552,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7653,19 +7563,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.2-alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7809,28 +7706,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.3 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7840,7 +7717,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7912,16 +7788,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7931,19 +7799,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.3-alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8087,16 +7942,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -8106,19 +7953,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.4 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8190,16 +8024,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -8209,19 +8035,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.4-alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8365,16 +8178,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8384,19 +8189,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.5 - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8468,28 +8260,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/php-official/8.5-alpine - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8499,7 +8271,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8643,28 +8414,8 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 - - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" - uses: actions/download-artifact@v4.1.9 - with: - name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" - uses: docker/build-push-action@v6 - with: - context: docker/storage/latest - platforms: '${{ matrix.platform }}' - load: true - tags: 'ghcr.io/webdevops/storage:sha-${{ github.sha }}-${{ matrix.arch }}-latest' - cache-from: type=gha - cache-to: 'type=gha,mode=max' - build-args: 'TARGETARCH=${{ matrix.arch }}' - - - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/storage/latest @@ -8674,7 +8425,6 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/toolbox:latest=oci-layout://${{ runner.temp }}/ci-oci-image/toolbox_latest:ci-parent-image' - if: "${{github.ref == 'refs/heads/master'}}" name: 'Login to ghcr.io' diff --git a/ci/src/Commands/GithubCommand.php b/ci/src/Commands/GithubCommand.php index d9da29ace..d53707817 100644 --- a/ci/src/Commands/GithubCommand.php +++ b/ci/src/Commands/GithubCommand.php @@ -83,6 +83,11 @@ private function traverse(Node $node): void $nodeAr = $node->toArray(); $nodeAr['level'] = $node->getLevel(); $nodeAr['hasChildren'] = $node->hasChildren(); + // BlueM\Tree\Node lowercases all property keys internally, so the + // 'imageParent' key set by FileReader comes back as 'imageparent'. + // Restore the expected casing here, once, for consumers like + // GithubJobBuilder. + $nodeAr['imageParent'] = $nodeAr['imageparent'] ?? 0; if ($node->getLevel() > $this->deepestLevel) { $this->deepestLevel = $node->getLevel(); } diff --git a/ci/src/FileReader.php b/ci/src/FileReader.php index faebfbc8a..15a9f9452 100644 --- a/ci/src/FileReader.php +++ b/ci/src/FileReader.php @@ -42,6 +42,7 @@ public function getInfo(string $dockerfilePath) 'aliases' => [], 'file' => $dockerfilePath, 'parent' => 0, + 'imageParent' => 0, 'serverspec' => [ 'DOCKER_IMAGE' => $id, 'DOCKER_TAG' => $tagName, @@ -63,8 +64,16 @@ public function getInfo(string $dockerfilePath) if (str_ends_with($parentImage, ':latest')) { $parentImage = str_replace(':latest', ':' . $this->_settings['docker']['autoLatestTag'], $parentImage); } + // Real Docker image inheritance: the Dockerfile's FROM references + // another internal webdevops/* image. This is the only case where + // OCI artifact propagation (build-contexts override) is valid. $node['parent'] = $parentImage; + $node['imageParent'] = $parentImage; } else if ($node['id'] !== 'webdevops/toolbox:latest') { + // Synthetic scheduling dependency only (e.g. to serialize CI + // against the Toolbox job). The Dockerfile does NOT actually + // build FROM this image, so it must never drive OCI artifact + // download/upload or build-contexts overrides. $node['parent'] = 'webdevops/toolbox:latest'; } // Treat *-official images diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 2e6e63fab..1131728ce 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -26,7 +26,8 @@ public function getJobsDescription(array $node): array $structuredTests = $this->structuredTests($node); $jobId = GithubJobBuilder::toJobId($node['name']); - $hasParent = $this->hasInternalParent($node); + $hasParent = (bool)($node['parent'] ?? null); + $hasImageParent = $this->hasInternalParent($node); $hasChildren = !empty($node['hasChildren']); $parentJobId = $hasParent ? GithubJobBuilder::toJobId($node['parent']) : null; $needs = $hasParent ? [$parentJobId, $parentJobId . '_publish'] : 'validate-automation'; @@ -68,22 +69,22 @@ public function getJobsDescription(array $node): array [ ['uses' => 'actions/checkout@v6'], ['uses' => 'docker/setup-buildx-action@v3'], - $hasParent ? [ + $hasImageParent ? [ 'name' => 'Download parent image (OCI layout)', 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'actions/download-artifact@v4.1.9', 'with' => [ - 'name' => $this->getCiImageArtifactName($node['parent']), - 'path' => $this->getCiImagePath($node['parent']), + 'name' => $this->getCiImageArtifactName($node['imageParent']), + 'path' => $this->getCiImagePath($node['imageParent']), ], ] : null, array_filter([ 'name' => 'Build (load locally)', - 'if' => $hasParent ? '${{ github.ref == \'refs/heads/master\' }}' : null, + 'if' => $hasImageParent ? '${{ github.ref == \'refs/heads/master\' }}' : null, 'uses' => 'docker/build-push-action@v6', 'with' => $this->buildPushWith($node), ]), - $hasParent ? [ + $hasImageParent ? [ 'name' => 'Build (load locally, from parent artifact)', 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'docker/build-push-action@v6', @@ -119,16 +120,23 @@ public function getJobsDescription(array $node): array 'name' => 'Export image (OCI layout)', 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'docker/build-push-action@v6', - 'with' => [ - 'context' => dirname(str_replace(__DIR__ . '/../../', '', $node['file'])), - 'platforms' => '${{ matrix.platform }}', - 'cache-from' => 'type=gha', - 'cache-to' => 'type=gha,mode=max', - 'build-args' => implode("\n", [ - 'TARGETARCH=${{ matrix.arch }}', - ]), - 'outputs' => 'type=oci,tar=false,name=' . self::PARENT_OCI_TAG . ',dest=' . $this->getCiImagePath($node['id']), - ], + 'with' => array_merge( + [ + 'context' => dirname(str_replace(__DIR__ . '/../../', '', $node['file'])), + 'platforms' => '${{ matrix.platform }}', + 'cache-from' => 'type=gha', + 'cache-to' => 'type=gha,mode=max', + 'build-args' => implode("\n", [ + 'TARGETARCH=${{ matrix.arch }}', + ]), + ], + // Must use the exact same parent build-context override as the + // tested build above, otherwise this second Buildx invocation + // silently re-resolves FROM against the published registry image + // and the exported artifact no longer reflects the tested result. + $hasImageParent ? ['build-contexts' => $this->parentBuildContext($node)] : [], + ['outputs' => 'type=oci,tar=false,name=' . self::PARENT_OCI_TAG . ',dest=' . $this->getCiImagePath($node['id'])], + ), ] : null, $hasChildren ? [ 'name' => 'Upload image (OCI layout)', @@ -222,12 +230,15 @@ private function buildPushWith(array $node): array } /** - * Whether the node's `FROM` statement points to another internal - * webdevops/* image built by this same workflow. + * Whether the node's Dockerfile actually contains a `FROM` statement + * referencing another internal webdevops/* image built by this same + * workflow (as opposed to `parent`, which may be a purely synthetic + * scheduling dependency, e.g. on the Toolbox job). Only an image + * parent is a valid source for OCI artifact propagation. */ private function hasInternalParent(array $node): bool { - return (bool)($node['parent'] ?? null); + return (bool)($node['imageParent'] ?? null); } /** @@ -251,13 +262,16 @@ private function getCiImagePath(string $imageId): string /** * Buildx `build-contexts` entry that maps the exact parent reference used - * in the Dockerfile's `FROM` statement to the OCI layout downloaded from - * the parent job's artifact, so BuildKit never needs to pull the parent - * image from Docker Hub during non-master builds. + * in the Dockerfile's `FROM` statement (`imageParent`) to the OCI layout + * downloaded from the parent job's artifact, so BuildKit never needs to + * pull the parent image from Docker Hub during non-master builds. Must + * be reused unchanged for every Buildx invocation of this node (tested + * build and OCI export alike), otherwise a later invocation silently + * resolves the parent from the registry again. */ private function parentBuildContext(array $node): string { - return $node['parent'] . '=oci-layout://' . $this->getCiImagePath($node['parent']) . ':' . self::PARENT_OCI_TAG; + return $node['imageParent'] . '=oci-layout://' . $this->getCiImagePath($node['imageParent']) . ':' . self::PARENT_OCI_TAG; } private function serverSpec(array $node): array From f2252b59c47b749501da491e9001edb786c6edcf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:16:11 +0000 Subject: [PATCH 04/12] Merge master (incl. #576) and revert build-job needs array to publish-only Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 284 +++++++++-------------------------- ci/src/GithubJobBuilder.php | 2 +- 2 files changed, 72 insertions(+), 214 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2c1fbb73e..64a21e69e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,9 +40,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/apache:alpine (${{ matrix.arch }})' - needs: - - base_alpine - - base_alpine_publish + needs: base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -151,9 +149,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base-app:alpine (${{ matrix.arch }})' - needs: - - base_alpine - - base_alpine_publish + needs: base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -267,9 +263,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base-app:ubuntu-22.04 (${{ matrix.arch }})' - needs: - - base_ubuntu-22-04 - - base_ubuntu-22-04_publish + needs: base_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -407,9 +401,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base:alpine (${{ matrix.arch }})' - needs: - - bootstrap_alpine - - bootstrap_alpine_publish + needs: bootstrap_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -545,9 +537,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/base:ubuntu-22.04 (${{ matrix.arch }})' - needs: - - bootstrap_ubuntu-22-04 - - bootstrap_ubuntu-22-04_publish + needs: bootstrap_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -685,9 +675,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/bootstrap:alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -801,9 +789,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/bootstrap:ubuntu-22.04 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -919,9 +905,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/dockerfile-build-env:latest (${{ matrix.arch }})' - needs: - - base-app_ubuntu-22-04 - - base-app_ubuntu-22-04_publish + needs: base-app_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1022,9 +1006,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/nginx:alpine (${{ matrix.arch }})' - needs: - - base_alpine - - base_alpine_publish + needs: base_alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1133,9 +1115,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.1 (${{ matrix.arch }})' - needs: - - php-apache_8-1 - - php-apache_8-1_publish + needs: php-apache_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1210,9 +1190,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.1-alpine (${{ matrix.arch }})' - needs: - - php-apache_8-1-alpine - - php-apache_8-1-alpine_publish + needs: php-apache_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1355,9 +1333,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.2 (${{ matrix.arch }})' - needs: - - php-apache_8-2 - - php-apache_8-2_publish + needs: php-apache_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1432,9 +1408,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.2-alpine (${{ matrix.arch }})' - needs: - - php-apache_8-2-alpine - - php-apache_8-2-alpine_publish + needs: php-apache_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1577,9 +1551,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.3 (${{ matrix.arch }})' - needs: - - php-apache_8-3 - - php-apache_8-3_publish + needs: php-apache_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1654,9 +1626,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.3-alpine (${{ matrix.arch }})' - needs: - - php-apache_8-3-alpine - - php-apache_8-3-alpine_publish + needs: php-apache_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1799,9 +1769,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.4 (${{ matrix.arch }})' - needs: - - php-apache_8-4 - - php-apache_8-4_publish + needs: php-apache_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -1876,9 +1844,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.4-alpine (${{ matrix.arch }})' - needs: - - php-apache_8-4-alpine - - php-apache_8-4-alpine_publish + needs: php-apache_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2021,9 +1987,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.5 (${{ matrix.arch }})' - needs: - - php-apache_8-5 - - php-apache_8-5_publish + needs: php-apache_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2098,9 +2062,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache-dev:8.5-alpine (${{ matrix.arch }})' - needs: - - php-apache_8-5-alpine - - php-apache_8-5-alpine_publish + needs: php-apache_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2243,9 +2205,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.1 (${{ matrix.arch }})' - needs: - - php_8-1 - - php_8-1_publish + needs: php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2342,9 +2302,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.1-alpine (${{ matrix.arch }})' - needs: - - php_8-1-alpine - - php_8-1-alpine_publish + needs: php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2509,9 +2467,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.2 (${{ matrix.arch }})' - needs: - - php_8-2 - - php_8-2_publish + needs: php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2608,9 +2564,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.2-alpine (${{ matrix.arch }})' - needs: - - php_8-2-alpine - - php_8-2-alpine_publish + needs: php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2775,9 +2729,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.3 (${{ matrix.arch }})' - needs: - - php_8-3 - - php_8-3_publish + needs: php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -2874,9 +2826,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.3-alpine (${{ matrix.arch }})' - needs: - - php_8-3-alpine - - php_8-3-alpine_publish + needs: php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3041,9 +2991,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.4 (${{ matrix.arch }})' - needs: - - php_8-4 - - php_8-4_publish + needs: php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3140,9 +3088,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.4-alpine (${{ matrix.arch }})' - needs: - - php_8-4-alpine - - php_8-4-alpine_publish + needs: php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3307,9 +3253,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.5 (${{ matrix.arch }})' - needs: - - php_8-5 - - php_8-5_publish + needs: php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3406,9 +3350,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-apache:8.5-alpine (${{ matrix.arch }})' - needs: - - php_8-5-alpine - - php_8-5-alpine_publish + needs: php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3573,9 +3515,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.1 (${{ matrix.arch }})' - needs: - - php_8-1 - - php_8-1_publish + needs: php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3655,9 +3595,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.1-alpine (${{ matrix.arch }})' - needs: - - php_8-1-alpine - - php_8-1-alpine_publish + needs: php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3805,9 +3743,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.2 (${{ matrix.arch }})' - needs: - - php_8-2 - - php_8-2_publish + needs: php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -3887,9 +3823,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.2-alpine (${{ matrix.arch }})' - needs: - - php_8-2-alpine - - php_8-2-alpine_publish + needs: php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4037,9 +3971,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.3 (${{ matrix.arch }})' - needs: - - php_8-3 - - php_8-3_publish + needs: php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4119,9 +4051,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.3-alpine (${{ matrix.arch }})' - needs: - - php_8-3-alpine - - php_8-3-alpine_publish + needs: php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4269,9 +4199,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.4 (${{ matrix.arch }})' - needs: - - php_8-4 - - php_8-4_publish + needs: php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4351,9 +4279,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.4-alpine (${{ matrix.arch }})' - needs: - - php_8-4-alpine - - php_8-4-alpine_publish + needs: php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4501,9 +4427,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.5 (${{ matrix.arch }})' - needs: - - php_8-5 - - php_8-5_publish + needs: php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4583,9 +4507,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-dev:8.5-alpine (${{ matrix.arch }})' - needs: - - php_8-5-alpine - - php_8-5-alpine_publish + needs: php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4733,9 +4655,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.1 (${{ matrix.arch }})' - needs: - - php-nginx_8-1 - - php-nginx_8-1_publish + needs: php-nginx_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4810,9 +4730,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.1-alpine (${{ matrix.arch }})' - needs: - - php-nginx_8-1-alpine - - php-nginx_8-1-alpine_publish + needs: php-nginx_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -4955,9 +4873,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.2 (${{ matrix.arch }})' - needs: - - php-nginx_8-2 - - php-nginx_8-2_publish + needs: php-nginx_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5032,9 +4948,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.2-alpine (${{ matrix.arch }})' - needs: - - php-nginx_8-2-alpine - - php-nginx_8-2-alpine_publish + needs: php-nginx_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5177,9 +5091,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.3 (${{ matrix.arch }})' - needs: - - php-nginx_8-3 - - php-nginx_8-3_publish + needs: php-nginx_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5254,9 +5166,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.3-alpine (${{ matrix.arch }})' - needs: - - php-nginx_8-3-alpine - - php-nginx_8-3-alpine_publish + needs: php-nginx_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5399,9 +5309,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.4 (${{ matrix.arch }})' - needs: - - php-nginx_8-4 - - php-nginx_8-4_publish + needs: php-nginx_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5476,9 +5384,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.4-alpine (${{ matrix.arch }})' - needs: - - php-nginx_8-4-alpine - - php-nginx_8-4-alpine_publish + needs: php-nginx_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5621,9 +5527,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.5 (${{ matrix.arch }})' - needs: - - php-nginx_8-5 - - php-nginx_8-5_publish + needs: php-nginx_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5698,9 +5602,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx-dev:8.5-alpine (${{ matrix.arch }})' - needs: - - php-nginx_8-5-alpine - - php-nginx_8-5-alpine_publish + needs: php-nginx_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5843,9 +5745,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.1 (${{ matrix.arch }})' - needs: - - php_8-1 - - php_8-1_publish + needs: php_8-1_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -5947,9 +5847,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.1-alpine (${{ matrix.arch }})' - needs: - - php_8-1-alpine - - php_8-1-alpine_publish + needs: php_8-1-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6119,9 +6017,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.2 (${{ matrix.arch }})' - needs: - - php_8-2 - - php_8-2_publish + needs: php_8-2_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6223,9 +6119,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.2-alpine (${{ matrix.arch }})' - needs: - - php_8-2-alpine - - php_8-2-alpine_publish + needs: php_8-2-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6395,9 +6289,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.3 (${{ matrix.arch }})' - needs: - - php_8-3 - - php_8-3_publish + needs: php_8-3_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6499,9 +6391,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.3-alpine (${{ matrix.arch }})' - needs: - - php_8-3-alpine - - php_8-3-alpine_publish + needs: php_8-3-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6671,9 +6561,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.4 (${{ matrix.arch }})' - needs: - - php_8-4 - - php_8-4_publish + needs: php_8-4_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6775,9 +6663,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.4-alpine (${{ matrix.arch }})' - needs: - - php_8-4-alpine - - php_8-4-alpine_publish + needs: php_8-4-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -6947,9 +6833,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.5 (${{ matrix.arch }})' - needs: - - php_8-5 - - php_8-5_publish + needs: php_8-5_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7051,9 +6935,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php-nginx:8.5-alpine (${{ matrix.arch }})' - needs: - - php_8-5-alpine - - php_8-5-alpine_publish + needs: php_8-5-alpine_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7223,9 +7105,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.1 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7305,9 +7185,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.1-alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7459,9 +7337,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.2 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7541,9 +7417,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.2-alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7695,9 +7569,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.3 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7777,9 +7649,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.3-alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -7931,9 +7801,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.4 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -8013,9 +7881,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.4-alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -8167,9 +8033,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.5 (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -8249,9 +8113,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/php:8.5-alpine (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -8403,9 +8265,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/storage:latest (${{ matrix.arch }})' - needs: - - toolbox_latest - - toolbox_latest_publish + needs: toolbox_latest_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env @@ -8586,9 +8446,7 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 name: 'webdevops/vsftp:latest (${{ matrix.arch }})' - needs: - - base_ubuntu-22-04 - - base_ubuntu-22-04_publish + needs: base_ubuntu-22-04_publish if: '${{ !failure() && !cancelled() }}' runs-on: '${{ matrix.runner }}' container: webdevops/dockerfile-build-env diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 1131728ce..e46230516 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -30,7 +30,7 @@ public function getJobsDescription(array $node): array $hasImageParent = $this->hasInternalParent($node); $hasChildren = !empty($node['hasChildren']); $parentJobId = $hasParent ? GithubJobBuilder::toJobId($node['parent']) : null; - $needs = $hasParent ? [$parentJobId, $parentJobId . '_publish'] : 'validate-automation'; + $needs = $hasParent ? $parentJobId . '_publish' : 'validate-automation'; $pushTags = []; $pushTags[] = '-t "' . $node['id'] . '"'; From e984682acd4962864e4427216ae7e6c8394aae56 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:29:16 +0000 Subject: [PATCH 05/12] Fix OCI artifact path mismatch inside container jobs (runner.temp vs /__w) Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 422 +++++++++++++++++------------------ ci/src/GithubJobBuilder.php | 11 +- 2 files changed, 221 insertions(+), 212 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 64a21e69e..8057ccca7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -55,7 +55,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_alpine' + path: .ci-oci-image/base_alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -80,7 +80,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' + build-contexts: 'webdevops/base:alpine=oci-layout://.ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -164,7 +164,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_alpine' + path: .ci-oci-image/base_alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -189,7 +189,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' + build-contexts: 'webdevops/base:alpine=oci-layout://.ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -278,7 +278,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -303,7 +303,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://.ci-oci-image/base_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- @@ -339,15 +339,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://.ci-oci-image/base_ubuntu-22-04:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base-app_ubuntu-22-04' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' + path: .ci-oci-image/base-app_ubuntu-22-04 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -416,7 +416,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/bootstrap_alpine' + path: .ci-oci-image/bootstrap_alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -441,7 +441,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/bootstrap:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_alpine:ci-parent-image' + build-contexts: 'webdevops/bootstrap:alpine=oci-layout://.ci-oci-image/bootstrap_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -477,15 +477,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/bootstrap:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_alpine' + build-contexts: 'webdevops/bootstrap:alpine=oci-layout://.ci-oci-image/bootstrap_alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_alpine' + path: .ci-oci-image/base_alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -552,7 +552,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' + path: .ci-oci-image/bootstrap_ubuntu-22-04 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -577,7 +577,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' + build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://.ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- @@ -613,15 +613,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + build-contexts: 'webdevops/bootstrap:ubuntu-22.04=oci-layout://.ci-oci-image/bootstrap_ubuntu-22-04:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_ubuntu-22-04' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + path: .ci-oci-image/base_ubuntu-22-04 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -730,14 +730,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/bootstrap_alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/bootstrap_alpine' + path: .ci-oci-image/bootstrap_alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -844,14 +844,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_ubuntu-22-04' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/bootstrap_ubuntu-22-04' + path: .ci-oci-image/bootstrap_ubuntu-22-04 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -920,7 +920,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04' + path: .ci-oci-image/base-app_ubuntu-22-04 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -945,7 +945,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base-app:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base-app_ubuntu-22-04:ci-parent-image' + build-contexts: 'webdevops/base-app:ubuntu-22.04=oci-layout://.ci-oci-image/base-app_ubuntu-22-04:ci-parent-image' - if: "${{github.ref == 'refs/heads/master'}}" name: 'Login to ghcr.io' @@ -1021,7 +1021,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_alpine' + path: .ci-oci-image/base_alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1046,7 +1046,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:alpine=oci-layout://${{ runner.temp }}/ci-oci-image/base_alpine:ci-parent-image' + build-contexts: 'webdevops/base:alpine=oci-layout://.ci-oci-image/base_alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1130,7 +1130,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1' + path: .ci-oci-image/php-apache_8-1 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1155,7 +1155,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-1:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.1=oci-layout://.ci-oci-image/php-apache_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -1205,7 +1205,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' + path: .ci-oci-image/php-apache_8-1-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1230,7 +1230,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.1-alpine=oci-layout://.ci-oci-image/php-apache_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1348,7 +1348,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2' + path: .ci-oci-image/php-apache_8-2 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1373,7 +1373,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-2:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.2=oci-layout://.ci-oci-image/php-apache_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -1423,7 +1423,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' + path: .ci-oci-image/php-apache_8-2-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1448,7 +1448,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.2-alpine=oci-layout://.ci-oci-image/php-apache_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1566,7 +1566,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3' + path: .ci-oci-image/php-apache_8-3 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1591,7 +1591,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-3:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.3=oci-layout://.ci-oci-image/php-apache_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -1641,7 +1641,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' + path: .ci-oci-image/php-apache_8-3-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1666,7 +1666,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.3-alpine=oci-layout://.ci-oci-image/php-apache_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -1784,7 +1784,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4' + path: .ci-oci-image/php-apache_8-4 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1809,7 +1809,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-4:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.4=oci-layout://.ci-oci-image/php-apache_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -1859,7 +1859,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' + path: .ci-oci-image/php-apache_8-4-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -1884,7 +1884,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.4-alpine=oci-layout://.ci-oci-image/php-apache_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2002,7 +2002,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5' + path: .ci-oci-image/php-apache_8-5 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2027,7 +2027,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-5:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.5=oci-layout://.ci-oci-image/php-apache_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -2077,7 +2077,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' + path: .ci-oci-image/php-apache_8-5-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2102,7 +2102,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-apache:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine:ci-parent-image' + build-contexts: 'webdevops/php-apache:8.5-alpine=oci-layout://.ci-oci-image/php-apache_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2220,7 +2220,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1' + path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2245,7 +2245,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' + build-contexts: 'webdevops/php:8.1=oci-layout://.ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -2276,15 +2276,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1' + build-contexts: 'webdevops/php:8.1=oci-layout://.ci-oci-image/php_8-1:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1' + path: .ci-oci-image/php-apache_8-1 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -2317,7 +2317,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2342,7 +2342,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://.ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2373,15 +2373,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://.ci-oci-image/php_8-1-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-1-alpine' + path: .ci-oci-image/php-apache_8-1-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -2482,7 +2482,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2' + path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2507,7 +2507,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' + build-contexts: 'webdevops/php:8.2=oci-layout://.ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -2538,15 +2538,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2' + build-contexts: 'webdevops/php:8.2=oci-layout://.ci-oci-image/php_8-2:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2' + path: .ci-oci-image/php-apache_8-2 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -2579,7 +2579,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2604,7 +2604,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://.ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2635,15 +2635,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://.ci-oci-image/php_8-2-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-2-alpine' + path: .ci-oci-image/php-apache_8-2-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -2744,7 +2744,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3' + path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2769,7 +2769,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' + build-contexts: 'webdevops/php:8.3=oci-layout://.ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -2800,15 +2800,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3' + build-contexts: 'webdevops/php:8.3=oci-layout://.ci-oci-image/php_8-3:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3' + path: .ci-oci-image/php-apache_8-3 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -2841,7 +2841,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -2866,7 +2866,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://.ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -2897,15 +2897,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://.ci-oci-image/php_8-3-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-3-alpine' + path: .ci-oci-image/php-apache_8-3-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -3006,7 +3006,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4' + path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3031,7 +3031,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' + build-contexts: 'webdevops/php:8.4=oci-layout://.ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -3062,15 +3062,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4' + build-contexts: 'webdevops/php:8.4=oci-layout://.ci-oci-image/php_8-4:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4' + path: .ci-oci-image/php-apache_8-4 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -3103,7 +3103,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3128,7 +3128,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://.ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3159,15 +3159,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://.ci-oci-image/php_8-4-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-4-alpine' + path: .ci-oci-image/php-apache_8-4-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -3268,7 +3268,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5' + path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3293,7 +3293,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' + build-contexts: 'webdevops/php:8.5=oci-layout://.ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -3324,15 +3324,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5' + build-contexts: 'webdevops/php:8.5=oci-layout://.ci-oci-image/php_8-5:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5' + path: .ci-oci-image/php-apache_8-5 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -3365,7 +3365,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3390,7 +3390,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://.ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3421,15 +3421,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://.ci-oci-image/php_8-5-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-apache_8-5-alpine' + path: .ci-oci-image/php-apache_8-5-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -3530,7 +3530,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1' + path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3555,7 +3555,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' + build-contexts: 'webdevops/php:8.1=oci-layout://.ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -3610,7 +3610,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3635,7 +3635,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://.ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3758,7 +3758,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2' + path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3783,7 +3783,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' + build-contexts: 'webdevops/php:8.2=oci-layout://.ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -3838,7 +3838,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -3863,7 +3863,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://.ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -3986,7 +3986,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3' + path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4011,7 +4011,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' + build-contexts: 'webdevops/php:8.3=oci-layout://.ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -4066,7 +4066,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4091,7 +4091,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://.ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4214,7 +4214,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4' + path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4239,7 +4239,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' + build-contexts: 'webdevops/php:8.4=oci-layout://.ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -4294,7 +4294,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4319,7 +4319,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://.ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4442,7 +4442,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5' + path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4467,7 +4467,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' + build-contexts: 'webdevops/php:8.5=oci-layout://.ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -4522,7 +4522,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4547,7 +4547,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://.ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4670,7 +4670,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1' + path: .ci-oci-image/php-nginx_8-1 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4695,7 +4695,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-1:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.1=oci-layout://.ci-oci-image/php-nginx_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -4745,7 +4745,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' + path: .ci-oci-image/php-nginx_8-1-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4770,7 +4770,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.1-alpine=oci-layout://.ci-oci-image/php-nginx_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -4888,7 +4888,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2' + path: .ci-oci-image/php-nginx_8-2 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4913,7 +4913,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-2:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.2=oci-layout://.ci-oci-image/php-nginx_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -4963,7 +4963,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' + path: .ci-oci-image/php-nginx_8-2-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -4988,7 +4988,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.2-alpine=oci-layout://.ci-oci-image/php-nginx_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5106,7 +5106,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3' + path: .ci-oci-image/php-nginx_8-3 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5131,7 +5131,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-3:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.3=oci-layout://.ci-oci-image/php-nginx_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -5181,7 +5181,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' + path: .ci-oci-image/php-nginx_8-3-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5206,7 +5206,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.3-alpine=oci-layout://.ci-oci-image/php-nginx_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5324,7 +5324,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + path: .ci-oci-image/php-nginx_8-4 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5349,7 +5349,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-4:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.4=oci-layout://.ci-oci-image/php-nginx_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -5399,7 +5399,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' + path: .ci-oci-image/php-nginx_8-4-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5424,7 +5424,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.4-alpine=oci-layout://.ci-oci-image/php-nginx_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5542,7 +5542,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5' + path: .ci-oci-image/php-nginx_8-5 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5567,7 +5567,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-5:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.5=oci-layout://.ci-oci-image/php-nginx_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -5617,7 +5617,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' + path: .ci-oci-image/php-nginx_8-5-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5642,7 +5642,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php-nginx:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine:ci-parent-image' + build-contexts: 'webdevops/php-nginx:8.5-alpine=oci-layout://.ci-oci-image/php-nginx_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5760,7 +5760,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1' + path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5785,7 +5785,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' + build-contexts: 'webdevops/php:8.1=oci-layout://.ci-oci-image/php_8-1:ci-parent-image' - name: 'run serverspec' run: |- @@ -5821,15 +5821,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1' + build-contexts: 'webdevops/php:8.1=oci-layout://.ci-oci-image/php_8-1:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1' + path: .ci-oci-image/php-nginx_8-1 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -5862,7 +5862,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -5887,7 +5887,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://.ci-oci-image/php_8-1-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -5923,15 +5923,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.1-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-1-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' + build-contexts: 'webdevops/php:8.1-alpine=oci-layout://.ci-oci-image/php_8-1-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-1-alpine' + path: .ci-oci-image/php-nginx_8-1-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6032,7 +6032,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2' + path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6057,7 +6057,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' + build-contexts: 'webdevops/php:8.2=oci-layout://.ci-oci-image/php_8-2:ci-parent-image' - name: 'run serverspec' run: |- @@ -6093,15 +6093,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2' + build-contexts: 'webdevops/php:8.2=oci-layout://.ci-oci-image/php_8-2:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2' + path: .ci-oci-image/php-nginx_8-2 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6134,7 +6134,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6159,7 +6159,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://.ci-oci-image/php_8-2-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -6195,15 +6195,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.2-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-2-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' + build-contexts: 'webdevops/php:8.2-alpine=oci-layout://.ci-oci-image/php_8-2-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-2-alpine' + path: .ci-oci-image/php-nginx_8-2-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6304,7 +6304,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3' + path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6329,7 +6329,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' + build-contexts: 'webdevops/php:8.3=oci-layout://.ci-oci-image/php_8-3:ci-parent-image' - name: 'run serverspec' run: |- @@ -6365,15 +6365,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3' + build-contexts: 'webdevops/php:8.3=oci-layout://.ci-oci-image/php_8-3:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3' + path: .ci-oci-image/php-nginx_8-3 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6406,7 +6406,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6431,7 +6431,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://.ci-oci-image/php_8-3-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -6467,15 +6467,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.3-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-3-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' + build-contexts: 'webdevops/php:8.3-alpine=oci-layout://.ci-oci-image/php_8-3-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-3-alpine' + path: .ci-oci-image/php-nginx_8-3-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6576,7 +6576,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4' + path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6601,7 +6601,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' + build-contexts: 'webdevops/php:8.4=oci-layout://.ci-oci-image/php_8-4:ci-parent-image' - name: 'run serverspec' run: |- @@ -6637,15 +6637,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + build-contexts: 'webdevops/php:8.4=oci-layout://.ci-oci-image/php_8-4:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4' + path: .ci-oci-image/php-nginx_8-4 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6678,7 +6678,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6703,7 +6703,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://.ci-oci-image/php_8-4-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -6739,15 +6739,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.4-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-4-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' + build-contexts: 'webdevops/php:8.4-alpine=oci-layout://.ci-oci-image/php_8-4-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-4-alpine' + path: .ci-oci-image/php-nginx_8-4-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6848,7 +6848,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5' + path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6873,7 +6873,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' + build-contexts: 'webdevops/php:8.5=oci-layout://.ci-oci-image/php_8-5:ci-parent-image' - name: 'run serverspec' run: |- @@ -6909,15 +6909,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5' + build-contexts: 'webdevops/php:8.5=oci-layout://.ci-oci-image/php_8-5:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5' + path: .ci-oci-image/php-nginx_8-5 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -6950,7 +6950,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -6975,7 +6975,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://.ci-oci-image/php_8-5-alpine:ci-parent-image' - name: 'run serverspec' run: |- @@ -7011,15 +7011,15 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/php:8.5-alpine=oci-layout://${{ runner.temp }}/ci-oci-image/php_8-5-alpine:ci-parent-image' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' + build-contexts: 'webdevops/php:8.5-alpine=oci-layout://.ci-oci-image/php_8-5-alpine:ci-parent-image' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php-nginx_8-5-alpine' + path: .ci-oci-image/php-nginx_8-5-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7160,14 +7160,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-1' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1' + path: .ci-oci-image/php_8-1 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7240,14 +7240,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-1-alpine' + path: .ci-oci-image/php_8-1-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7392,14 +7392,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-2' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2' + path: .ci-oci-image/php_8-2 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7472,14 +7472,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-2-alpine' + path: .ci-oci-image/php_8-2-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7624,14 +7624,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-3' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3' + path: .ci-oci-image/php_8-3 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7704,14 +7704,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-3-alpine' + path: .ci-oci-image/php_8-3-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7856,14 +7856,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-4' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4' + path: .ci-oci-image/php_8-4 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -7936,14 +7936,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-4-alpine' + path: .ci-oci-image/php_8-4-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -8088,14 +8088,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-5' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5' + path: .ci-oci-image/php_8-5 retention-days: 1 compression-level: 0 if-no-files-found: error @@ -8168,14 +8168,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5-alpine' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/php_8-5-alpine' + path: .ci-oci-image/php_8-5-alpine retention-days: 1 compression-level: 0 if-no-files-found: error @@ -8387,14 +8387,14 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - outputs: 'type=oci,tar=false,name=ci-parent-image,dest=${{ runner.temp }}/ci-oci-image/toolbox_latest' + outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/toolbox_latest' - name: 'Upload image (OCI layout)' if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/toolbox_latest' + path: .ci-oci-image/toolbox_latest retention-days: 1 compression-level: 0 if-no-files-found: error @@ -8461,7 +8461,7 @@ jobs: uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' - path: '${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04' + path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' if: "${{ github.ref == 'refs/heads/master' }}" @@ -8486,7 +8486,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://${{ runner.temp }}/ci-oci-image/base_ubuntu-22-04:ci-parent-image' + build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://.ci-oci-image/base_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index e46230516..4a0d787b3 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -254,10 +254,19 @@ private function getCiImageArtifactName(string $imageId): string /** * Predictable, collision-free extraction/export directory for the OCI * layout of the image identified by $imageId. + * + * Intentionally a path relative to the job's working directory (the + * checked-out repository) rather than an absolute `${{ runner.temp }}` + * path: every job in this workflow runs inside a `container:`, and + * `${{ runner.temp }}` is evaluated by the Actions runner against the + * *host* filesystem, which is only bind-mounted into the container under + * `/__w/_temp`, not under the literal host path. A relative path is + * resolved consistently by every step (checkout, Buildx, up-/download-artifact) + * against the same container working directory, avoiding that mismatch. */ private function getCiImagePath(string $imageId): string { - return '${{ runner.temp }}/ci-oci-image/' . GithubJobBuilder::toJobId($imageId); + return '.ci-oci-image/' . GithubJobBuilder::toJobId($imageId); } /** From 0759c7a8cf33bd763d915829c8d1358eecd6bcc7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:02:09 +0000 Subject: [PATCH 06/12] Fix :latest parent mismatch, COPY --from=toolbox propagation, and PR-only OCI gating Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 874 +++++++++++++++++++----------- ci/src/Commands/GithubCommand.php | 2 + ci/src/FileReader.php | 64 ++- ci/src/GithubJobBuilder.php | 114 ++-- 4 files changed, 709 insertions(+), 345 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8057ccca7..890e622e5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -50,15 +50,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base:alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/apache/alpine @@ -70,7 +70,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/apache/alpine @@ -159,15 +159,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base:alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/alpine @@ -179,7 +179,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/alpine @@ -273,15 +273,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base:ubuntu-22.04' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -293,7 +293,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -331,7 +331,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base-app:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -343,7 +343,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base-app_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' @@ -411,15 +411,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/bootstrap:alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' path: .ci-oci-image/bootstrap_alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -431,7 +431,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -469,7 +469,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -481,7 +481,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' @@ -547,15 +547,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/bootstrap:ubuntu-22.04' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/bootstrap_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -567,7 +567,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -605,7 +605,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -617,7 +617,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' @@ -684,8 +684,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -695,6 +703,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -722,7 +743,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -730,10 +751,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' @@ -798,8 +820,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -809,6 +839,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/bootstrap/ubuntu-22.04 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}-ubuntu-22.04' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -836,7 +879,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -844,10 +887,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' @@ -915,15 +959,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base-app:ubuntu-22.04' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base-app_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/dockerfile-build-env/latest @@ -935,7 +979,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/dockerfile-build-env/latest @@ -1016,15 +1060,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base:alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/nginx/alpine @@ -1036,7 +1080,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/nginx/alpine @@ -1125,15 +1169,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.1' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-1 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1 @@ -1145,7 +1189,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1 @@ -1200,15 +1244,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.1-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1-alpine @@ -1220,7 +1264,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1-alpine @@ -1343,15 +1387,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.2' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-2 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2 @@ -1363,7 +1407,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2 @@ -1418,15 +1462,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.2-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2-alpine @@ -1438,7 +1482,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2-alpine @@ -1561,15 +1605,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.3' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-3 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3 @@ -1581,7 +1625,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3 @@ -1636,15 +1680,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.3-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3-alpine @@ -1656,7 +1700,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3-alpine @@ -1779,15 +1823,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.4' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-4 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4 @@ -1799,7 +1843,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4 @@ -1854,15 +1898,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.4-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4-alpine @@ -1874,7 +1918,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4-alpine @@ -1997,15 +2041,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.5' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-5 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5 @@ -2017,7 +2061,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5 @@ -2072,15 +2116,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-apache:8.5-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5-alpine @@ -2092,7 +2136,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5-alpine @@ -2215,15 +2259,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2235,7 +2279,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2268,7 +2312,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2280,7 +2324,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' @@ -2312,15 +2356,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2332,7 +2376,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2365,7 +2409,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2377,7 +2421,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' @@ -2477,15 +2521,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2497,7 +2541,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2530,7 +2574,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2542,7 +2586,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' @@ -2574,15 +2618,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2594,7 +2638,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2627,7 +2671,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2639,7 +2683,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' @@ -2739,15 +2783,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2759,7 +2803,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2792,7 +2836,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2804,7 +2848,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' @@ -2836,15 +2880,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2856,7 +2900,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2889,7 +2933,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2901,7 +2945,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' @@ -3001,15 +3045,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3021,7 +3065,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3054,7 +3098,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3066,7 +3110,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' @@ -3098,15 +3142,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3118,7 +3162,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3151,7 +3195,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3163,7 +3207,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' @@ -3263,15 +3307,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3283,7 +3327,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3316,7 +3360,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3328,7 +3372,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' @@ -3360,15 +3404,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3380,7 +3424,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3413,7 +3457,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3425,7 +3469,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' @@ -3525,15 +3569,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1 @@ -3545,7 +3589,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1 @@ -3605,15 +3649,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1-alpine @@ -3625,7 +3669,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1-alpine @@ -3753,15 +3797,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2 @@ -3773,7 +3817,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2 @@ -3833,15 +3877,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2-alpine @@ -3853,7 +3897,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2-alpine @@ -3981,15 +4025,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3 @@ -4001,7 +4045,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3 @@ -4061,15 +4105,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3-alpine @@ -4081,7 +4125,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3-alpine @@ -4209,15 +4253,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4 @@ -4229,7 +4273,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4 @@ -4289,15 +4333,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4-alpine @@ -4309,7 +4353,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4-alpine @@ -4437,15 +4481,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5 @@ -4457,7 +4501,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5 @@ -4517,15 +4561,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5-alpine @@ -4537,7 +4581,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5-alpine @@ -4665,15 +4709,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.1' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-1 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1 @@ -4685,7 +4729,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1 @@ -4740,15 +4784,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.1-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1-alpine @@ -4760,7 +4804,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1-alpine @@ -4883,15 +4927,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.2' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-2 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2 @@ -4903,7 +4947,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2 @@ -4958,15 +5002,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.2-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2-alpine @@ -4978,7 +5022,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2-alpine @@ -5101,15 +5145,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.3' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-3 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3 @@ -5121,7 +5165,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3 @@ -5176,15 +5220,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.3-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3-alpine @@ -5196,7 +5240,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3-alpine @@ -5319,15 +5363,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.4' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-4 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4 @@ -5339,7 +5383,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4 @@ -5394,15 +5438,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.4-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4-alpine @@ -5414,7 +5458,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4-alpine @@ -5537,15 +5581,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.5' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-5 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5 @@ -5557,7 +5601,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5 @@ -5612,15 +5656,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php-nginx:8.5-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5-alpine @@ -5632,7 +5676,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5-alpine @@ -5755,15 +5799,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5775,7 +5819,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5813,7 +5857,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5825,7 +5869,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' @@ -5857,15 +5901,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5877,7 +5921,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5915,7 +5959,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5927,7 +5971,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' @@ -6027,15 +6071,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6047,7 +6091,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6085,7 +6129,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6097,7 +6141,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' @@ -6129,15 +6173,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6149,7 +6193,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6187,7 +6231,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6199,7 +6243,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' @@ -6299,15 +6343,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6319,7 +6363,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6357,7 +6401,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6369,7 +6413,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' @@ -6401,15 +6445,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6421,7 +6465,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6459,7 +6503,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6471,7 +6515,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' @@ -6571,15 +6615,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6591,7 +6635,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6629,7 +6673,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6641,7 +6685,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' @@ -6673,15 +6717,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6693,7 +6737,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6731,7 +6775,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6743,7 +6787,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' @@ -6843,15 +6887,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6863,7 +6907,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6901,7 +6945,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6913,7 +6957,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' @@ -6945,15 +6989,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -6965,7 +7009,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -7003,7 +7047,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -7015,7 +7059,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' @@ -7114,8 +7158,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7125,6 +7177,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7152,7 +7217,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7160,10 +7225,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' @@ -7194,8 +7260,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.1-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.1-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7205,6 +7291,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7232,7 +7319,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7240,10 +7327,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' @@ -7346,8 +7434,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7357,6 +7465,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7384,7 +7493,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7392,10 +7501,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' @@ -7426,8 +7536,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7437,6 +7555,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.2-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.2-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7464,7 +7595,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7472,10 +7603,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' @@ -7578,8 +7710,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7589,6 +7741,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7616,7 +7769,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7624,10 +7777,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' @@ -7658,8 +7812,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.3-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.3-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7669,6 +7843,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7696,7 +7871,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7704,10 +7879,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' @@ -7810,8 +7986,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -7821,6 +8005,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7848,7 +8045,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -7856,10 +8053,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' @@ -7890,8 +8088,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.4-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.4-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -7901,6 +8119,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -7928,7 +8147,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -7936,10 +8155,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' @@ -8042,8 +8262,28 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5 + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8053,6 +8293,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8080,7 +8321,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8088,10 +8329,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' @@ -8122,8 +8364,16 @@ jobs: uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v3 + - + name: 'Download parent image (OCI layout): webdevops/toolbox:latest' + if: "${{ github.event_name == 'pull_request' }}" + uses: actions/download-artifact@v4.1.9 + with: + name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' + path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8133,6 +8383,19 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + - + name: 'Build (load locally, from parent artifact)' + if: "${{ github.event_name == 'pull_request' }}" + uses: docker/build-push-action@v6 + with: + context: docker/php-official/8.5-alpine + platforms: '${{ matrix.platform }}' + load: true + tags: 'ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}-8.5-alpine' + cache-from: type=gha + cache-to: 'type=gha,mode=max' + build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' - name: 'run serverspec' run: |- @@ -8160,7 +8423,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8168,10 +8431,11 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' + build-contexts: 'webdevops/toolbox=oci-layout://.ci-oci-image/toolbox_latest:ci-parent-image' outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' @@ -8379,7 +8643,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/toolbox:sha-${{ github.sha }}-${{ matrix.arch }}"-latest' - name: 'Export image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/toolbox/latest @@ -8390,7 +8654,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/toolbox_latest' - name: 'Upload image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' @@ -8456,15 +8720,15 @@ jobs: - uses: docker/setup-buildx-action@v3 - - name: 'Download parent image (OCI layout)' - if: "${{ github.ref != 'refs/heads/master' }}" + name: 'Download parent image (OCI layout): webdevops/base:ubuntu-22.04' + if: "${{ github.event_name == 'pull_request' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.ref == 'refs/heads/master' }}" + if: "${{ github.event_name != 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/vsftp/latest @@ -8476,7 +8740,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.ref != 'refs/heads/master' }}" + if: "${{ github.event_name == 'pull_request' }}" uses: docker/build-push-action@v6 with: context: docker/vsftp/latest @@ -8486,7 +8750,7 @@ jobs: cache-from: type=gha cache-to: 'type=gha,mode=max' build-args: 'TARGETARCH=${{ matrix.arch }}' - build-contexts: 'webdevops/base:ubuntu-22.04=oci-layout://.ci-oci-image/base_ubuntu-22-04:ci-parent-image' + build-contexts: 'webdevops/base:latest=oci-layout://.ci-oci-image/base_ubuntu-22-04:ci-parent-image' - name: 'run serverspec' run: |- diff --git a/ci/src/Commands/GithubCommand.php b/ci/src/Commands/GithubCommand.php index d53707817..ebdb06b27 100644 --- a/ci/src/Commands/GithubCommand.php +++ b/ci/src/Commands/GithubCommand.php @@ -88,6 +88,8 @@ private function traverse(Node $node): void // Restore the expected casing here, once, for consumers like // GithubJobBuilder. $nodeAr['imageParent'] = $nodeAr['imageparent'] ?? 0; + $nodeAr['imageParentRef'] = $nodeAr['imageparentref'] ?? 0; + $nodeAr['imageDependencies'] = $nodeAr['imagedependencies'] ?? []; if ($node->getLevel() > $this->deepestLevel) { $this->deepestLevel = $node->getLevel(); } diff --git a/ci/src/FileReader.php b/ci/src/FileReader.php index 15a9f9452..1e61dff9d 100644 --- a/ci/src/FileReader.php +++ b/ci/src/FileReader.php @@ -43,6 +43,8 @@ public function getInfo(string $dockerfilePath) 'file' => $dockerfilePath, 'parent' => 0, 'imageParent' => 0, + 'imageParentRef' => 0, + 'imageDependencies' => [], 'serverspec' => [ 'DOCKER_IMAGE' => $id, 'DOCKER_TAG' => $tagName, @@ -61,14 +63,18 @@ public function getInfo(string $dockerfilePath) preg_match_all('/FROM (.*)/', $content, $fromMatches); $parentImage = array_pop($fromMatches[1]); if (strpos($parentImage, 'webdevops/') === 0) { - if (str_ends_with($parentImage, ':latest')) { - $parentImage = str_replace(':latest', ':' . $this->_settings['docker']['autoLatestTag'], $parentImage); - } // Real Docker image inheritance: the Dockerfile's FROM references // another internal webdevops/* image. This is the only case where - // OCI artifact propagation (build-contexts override) is valid. - $node['parent'] = $parentImage; - $node['imageParent'] = $parentImage; + // 'imageParent' driven OCI artifact propagation (build-contexts + // override) is valid. 'imageParentRef' keeps the *exact* literal + // text used in the FROM statement (e.g. "webdevops/base:latest"), + // because that is the key BuildKit matches against when a + // `build-contexts` override is supplied; it must NOT be the + // resolved/aliased image id, or the override silently fails to + // apply and the build falls back to pulling the published image. + $node['parent'] = $this->resolveInternalImageReference($parentImage); + $node['imageParent'] = $node['parent']; + $node['imageParentRef'] = $parentImage; } else if ($node['id'] !== 'webdevops/toolbox:latest') { // Synthetic scheduling dependency only (e.g. to serialize CI // against the Toolbox job). The Dockerfile does NOT actually @@ -76,6 +82,16 @@ public function getInfo(string $dockerfilePath) // download/upload or build-contexts overrides. $node['parent'] = 'webdevops/toolbox:latest'; } + // Additional internal image dependencies referenced via + // `COPY --from=webdevops/...` (not a FROM parent). BuildKit's named + // build-context override mechanism applies identically to + // `COPY --from=` references, so these need the exact same OCI + // artifact propagation as a real FROM parent, otherwise the copied + // files still come from the published registry image. + preg_match_all('/^COPY\s+--from=(webdevops\/\S+)/m', $content, $copyFromMatches); + foreach (array_unique($copyFromMatches[1]) as $dependencyRef) { + $node['imageDependencies'][$dependencyRef] = $this->resolveInternalImageReference($dependencyRef); + } // Treat *-official images if (strpos($id, '-official:') !== false) { $node['aliases'][] = $id; @@ -88,4 +104,40 @@ public function getInfo(string $dockerfilePath) return $node; } + /** + * Resolve a literal internal `webdevops/[:]` reference, as it + * appears in a `FROM` or `COPY --from=` statement, to the exact image id + * that is actually built by this repository's CI pipeline (i.e. the id + * backed by a real `docker///Dockerfile`). + * + * Most images do not have a literal "latest" subdirectory: `:latest` is + * only a published alias for whichever folder `autoLatestTag` points to + * (see the alias handling above), so a reference like + * "webdevops/base:latest" must resolve to "webdevops/base:ubuntu-22.04" + * to match the job that actually builds and exports it. A few images + * (e.g. toolbox, ssh, vsftp) *do* have a literal "latest" subdirectory + * and must be left untouched. Checking the filesystem directly, rather + * than assuming the "latest" alias substitution always applies, keeps + * this correct for both cases. + */ + private function resolveInternalImageReference(string $reference): string + { + $imageAndTag = substr($reference, strlen('webdevops/')); + if (strpos($imageAndTag, ':') !== false) { + [$image, $tag] = explode(':', $imageAndTag, 2); + } else { + // `COPY --from=webdevops/toolbox` has no explicit tag; Docker + // treats an untagged reference as `:latest`. + $image = $imageAndTag; + $tag = 'latest'; + } + $dockerfileExists = fn (string $tag): bool => file_exists( + __DIR__ . '/../../docker/' . $image . '/' . $tag . '/Dockerfile', + ); + if ($tag === 'latest' && !$dockerfileExists($tag) && $dockerfileExists($this->_settings['docker']['autoLatestTag'])) { + $tag = $this->_settings['docker']['autoLatestTag']; + } + return 'webdevops/' . $image . ':' . $tag; + } + } diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 4a0d787b3..75b233ca6 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -17,6 +17,17 @@ class GithubJobBuilder */ private const PARENT_OCI_TAG = 'ci-parent-image'; + /** + * Same-run parent artifact propagation (download/build-contexts + * override/export/upload) only ever runs for `pull_request` builds. + * Plain branch pushes (including master) and other trigger types (cron, + * workflow_dispatch) fall back to pulling the published parent image, to + * avoid doubling OCI artifact storage/network cost on every commit that + * is covered by both a `push` and a `pull_request` workflow run. Master + * publishing is unaffected, since master is only ever reached by `push`. + */ + private const PR_ONLY_IF = '${{ github.event_name == \'pull_request\' }}'; + /** * @return array> */ @@ -27,7 +38,8 @@ public function getJobsDescription(array $node): array $jobId = GithubJobBuilder::toJobId($node['name']); $hasParent = (bool)($node['parent'] ?? null); - $hasImageParent = $this->hasInternalParent($node); + $imageDependencies = $this->imageDependencies($node); + $hasImageDependencies = !empty($imageDependencies); $hasChildren = !empty($node['hasChildren']); $parentJobId = $hasParent ? GithubJobBuilder::toJobId($node['parent']) : null; $needs = $hasParent ? $parentJobId . '_publish' : 'validate-automation'; @@ -69,28 +81,20 @@ public function getJobsDescription(array $node): array [ ['uses' => 'actions/checkout@v6'], ['uses' => 'docker/setup-buildx-action@v3'], - $hasImageParent ? [ - 'name' => 'Download parent image (OCI layout)', - 'if' => '${{ github.ref != \'refs/heads/master\' }}', - 'uses' => 'actions/download-artifact@v4.1.9', - 'with' => [ - 'name' => $this->getCiImageArtifactName($node['imageParent']), - 'path' => $this->getCiImagePath($node['imageParent']), - ], - ] : null, + ...$this->downloadParentImageSteps($imageDependencies), array_filter([ 'name' => 'Build (load locally)', - 'if' => $hasImageParent ? '${{ github.ref == \'refs/heads/master\' }}' : null, + 'if' => $hasImageDependencies ? '${{ github.event_name != \'pull_request\' }}' : null, 'uses' => 'docker/build-push-action@v6', 'with' => $this->buildPushWith($node), ]), - $hasImageParent ? [ + $hasImageDependencies ? [ 'name' => 'Build (load locally, from parent artifact)', - 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'if' => self::PR_ONLY_IF, 'uses' => 'docker/build-push-action@v6', 'with' => array_merge( $this->buildPushWith($node), - ['build-contexts' => $this->parentBuildContext($node)], + ['build-contexts' => $this->buildContexts($imageDependencies)], ), ] : null, $serverSpec ? [ @@ -118,7 +122,7 @@ public function getJobsDescription(array $node): array ], $hasChildren ? [ 'name' => 'Export image (OCI layout)', - 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'if' => self::PR_ONLY_IF, 'uses' => 'docker/build-push-action@v6', 'with' => array_merge( [ @@ -130,17 +134,18 @@ public function getJobsDescription(array $node): array 'TARGETARCH=${{ matrix.arch }}', ]), ], - // Must use the exact same parent build-context override as the + // Must use the exact same build-contexts override as the // tested build above, otherwise this second Buildx invocation - // silently re-resolves FROM against the published registry image - // and the exported artifact no longer reflects the tested result. - $hasImageParent ? ['build-contexts' => $this->parentBuildContext($node)] : [], + // silently re-resolves FROM/COPY --from references against the + // published registry images and the exported artifact no + // longer reflects the tested result. + $hasImageDependencies ? ['build-contexts' => $this->buildContexts($imageDependencies)] : [], ['outputs' => 'type=oci,tar=false,name=' . self::PARENT_OCI_TAG . ',dest=' . $this->getCiImagePath($node['id'])], ), ] : null, $hasChildren ? [ 'name' => 'Upload image (OCI layout)', - 'if' => '${{ github.ref != \'refs/heads/master\' }}', + 'if' => self::PR_ONLY_IF, 'uses' => 'actions/upload-artifact@v4', 'with' => [ 'name' => $this->getCiImageArtifactName($node['id']), @@ -230,15 +235,51 @@ private function buildPushWith(array $node): array } /** - * Whether the node's Dockerfile actually contains a `FROM` statement - * referencing another internal webdevops/* image built by this same - * workflow (as opposed to `parent`, which may be a purely synthetic - * scheduling dependency, e.g. on the Toolbox job). Only an image - * parent is a valid source for OCI artifact propagation. + * All internal webdevops/* images this node needs a same-run OCI + * artifact override for: its real FROM parent (if any) plus any images + * referenced via `COPY --from=webdevops/...`. Keyed by the *literal* + * reference text as written in the Dockerfile (the key a Buildx + * `build-contexts` override must match exactly), valued by the resolved + * image id that identifies the job/artifact actually producing it. + * + * `node['parent']` is NOT used here on its own: it may be a purely + * synthetic scheduling dependency (e.g. on the Toolbox job for images + * whose Dockerfile does not actually FROM/COPY an internal image), which + * must never drive OCI artifact propagation. + */ + private function imageDependencies(array $node): array + { + $dependencies = []; + if (!empty($node['imageParent'])) { + $literalRef = $node['imageParentRef'] ?: $node['imageParent']; + $dependencies[$literalRef] = $node['imageParent']; + } + foreach ($node['imageDependencies'] ?? [] as $literalRef => $resolvedImage) { + $dependencies[$literalRef] = $resolvedImage; + } + return $dependencies; + } + + /** + * One "Download parent image (OCI layout)" step per distinct image id + * referenced in $imageDependencies, deduplicated so the same artifact is + * never downloaded twice (e.g. if an image happens to be both the FROM + * parent and a COPY --from target). + * + * @return array> */ - private function hasInternalParent(array $node): bool + private function downloadParentImageSteps(array $imageDependencies): array { - return (bool)($node['imageParent'] ?? null); + $imageIds = array_unique(array_values($imageDependencies)); + return array_map(fn (string $imageId): array => [ + 'name' => 'Download parent image (OCI layout): ' . $imageId, + 'if' => self::PR_ONLY_IF, + 'uses' => 'actions/download-artifact@v4.1.9', + 'with' => [ + 'name' => $this->getCiImageArtifactName($imageId), + 'path' => $this->getCiImagePath($imageId), + ], + ], $imageIds); } /** @@ -270,19 +311,24 @@ private function getCiImagePath(string $imageId): string } /** - * Buildx `build-contexts` entry that maps the exact parent reference used - * in the Dockerfile's `FROM` statement (`imageParent`) to the OCI layout - * downloaded from the parent job's artifact, so BuildKit never needs to - * pull the parent image from Docker Hub during non-master builds. Must + * Buildx `build-contexts` value mapping every literal FROM/COPY --from + * reference in $imageDependencies to the OCI layout downloaded from the + * corresponding parent job's artifact, so BuildKit never needs to pull + * any of those images from Docker Hub during a pull_request build. Must * be reused unchanged for every Buildx invocation of this node (tested * build and OCI export alike), otherwise a later invocation silently - * resolves the parent from the registry again. + * resolves a dependency from the registry again. */ - private function parentBuildContext(array $node): string + private function buildContexts(array $imageDependencies): string { - return $node['imageParent'] . '=oci-layout://' . $this->getCiImagePath($node['imageParent']) . ':' . self::PARENT_OCI_TAG; + $lines = []; + foreach ($imageDependencies as $literalRef => $imageId) { + $lines[] = $literalRef . '=oci-layout://' . $this->getCiImagePath($imageId) . ':' . self::PARENT_OCI_TAG; + } + return implode("\n", $lines); } + private function serverSpec(array $node): array { $specFile = sprintf('spec/docker/%s_spec.rb', $node['image']); From cf1c7858f40f5b38ca2783ece6c9df4f33179d30 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:03:34 +0000 Subject: [PATCH 07/12] Address code review: extract PR_ONLY_IF_NOT constant Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- ci/src/GithubJobBuilder.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 75b233ca6..22bf5c8b8 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -28,6 +28,13 @@ class GithubJobBuilder */ private const PR_ONLY_IF = '${{ github.event_name == \'pull_request\' }}'; + /** + * Logical negation of {@see self::PR_ONLY_IF}, kept as its own constant + * (rather than an inline literal) so the two conditions can never drift + * out of sync if the gating logic above ever changes. + */ + private const PR_ONLY_IF_NOT = '${{ github.event_name != \'pull_request\' }}'; + /** * @return array> */ @@ -84,7 +91,7 @@ public function getJobsDescription(array $node): array ...$this->downloadParentImageSteps($imageDependencies), array_filter([ 'name' => 'Build (load locally)', - 'if' => $hasImageDependencies ? '${{ github.event_name != \'pull_request\' }}' : null, + 'if' => $hasImageDependencies ? self::PR_ONLY_IF_NOT : null, 'uses' => 'docker/build-push-action@v6', 'with' => $this->buildPushWith($node), ]), From 6228391603fc25a49f8688d108e89ba4ffc04403 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:05:08 +0000 Subject: [PATCH 08/12] Strip multi-stage AS alias from FROM parsing to keep literal build-context key correct Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- ci/src/FileReader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/src/FileReader.php b/ci/src/FileReader.php index 1e61dff9d..d509519cc 100644 --- a/ci/src/FileReader.php +++ b/ci/src/FileReader.php @@ -60,7 +60,7 @@ public function getInfo(string $dockerfilePath) } } // Only internal images must be contained in build tree - preg_match_all('/FROM (.*)/', $content, $fromMatches); + preg_match_all('/^FROM\s+(\S+)(?:\s+AS\s+\S+)?\s*$/mi', $content, $fromMatches); $parentImage = array_pop($fromMatches[1]); if (strpos($parentImage, 'webdevops/') === 0) { // Real Docker image inheritance: the Dockerfile's FROM references From 595ba629893700f403da1247065359cc80be268a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:06:18 +0000 Subject: [PATCH 09/12] Use explicit null-check callback in array_filter for Build (load locally) step Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- ci/src/GithubJobBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 22bf5c8b8..68fac7955 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -94,7 +94,7 @@ public function getJobsDescription(array $node): array 'if' => $hasImageDependencies ? self::PR_ONLY_IF_NOT : null, 'uses' => 'docker/build-push-action@v6', 'with' => $this->buildPushWith($node), - ]), + ], fn ($value): bool => $value !== null), $hasImageDependencies ? [ 'name' => 'Build (load locally, from parent artifact)', 'if' => self::PR_ONLY_IF, From 0377fe5666faf23b2f6ef8a82f3b1f33aa6946a9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:07:22 +0000 Subject: [PATCH 10/12] Use null sentinel for imageParentRef and fix stale alias-handling comment Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- ci/src/FileReader.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ci/src/FileReader.php b/ci/src/FileReader.php index d509519cc..40a3675bc 100644 --- a/ci/src/FileReader.php +++ b/ci/src/FileReader.php @@ -43,7 +43,7 @@ public function getInfo(string $dockerfilePath) 'file' => $dockerfilePath, 'parent' => 0, 'imageParent' => 0, - 'imageParentRef' => 0, + 'imageParentRef' => null, 'imageDependencies' => [], 'serverspec' => [ 'DOCKER_IMAGE' => $id, @@ -110,15 +110,16 @@ public function getInfo(string $dockerfilePath) * that is actually built by this repository's CI pipeline (i.e. the id * backed by a real `docker///Dockerfile`). * - * Most images do not have a literal "latest" subdirectory: `:latest` is - * only a published alias for whichever folder `autoLatestTag` points to - * (see the alias handling above), so a reference like - * "webdevops/base:latest" must resolve to "webdevops/base:ubuntu-22.04" - * to match the job that actually builds and exports it. A few images - * (e.g. toolbox, ssh, vsftp) *do* have a literal "latest" subdirectory - * and must be left untouched. Checking the filesystem directly, rather - * than assuming the "latest" alias substitution always applies, keeps - * this correct for both cases. + * This is the single source of truth for resolving a `:latest` (or + * untagged, which Docker treats identically) reference: most images do + * not have a literal "latest" subdirectory, so `:latest` is only a + * published alias for whichever folder `autoLatestTag` points to, and a + * reference like "webdevops/base:latest" must resolve to + * "webdevops/base:ubuntu-22.04" to match the job that actually builds + * and exports it. A few images (e.g. toolbox, ssh, vsftp) *do* have a + * literal "latest" subdirectory and must be left untouched. Checking the + * filesystem directly, rather than assuming the "latest" alias + * substitution always applies, keeps this correct for both cases. */ private function resolveInternalImageReference(string $reference): string { From f9928378d93b93e8498f2063ec1e2834b5192f34 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:18:21 +0000 Subject: [PATCH 11/12] Restrict push trigger to master to avoid duplicate PR-branch runs Co-authored-by: Kanti <471387+Kanti@users.noreply.github.com> --- .github/workflows/build.yaml | 4 +++- ci/src/Commands/GithubCommand.php | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 890e622e5..ac27ad8d9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,7 +3,9 @@ name: build schedule: - cron: '0 0 * * *' - push: null + push: + branches: + - master pull_request: branches: - master diff --git a/ci/src/Commands/GithubCommand.php b/ci/src/Commands/GithubCommand.php index ebdb06b27..96b7c36a8 100644 --- a/ci/src/Commands/GithubCommand.php +++ b/ci/src/Commands/GithubCommand.php @@ -59,7 +59,18 @@ protected function execute(InputInterface $input, OutputInterface $output) 'schedule' => [ ['cron' => '0 0 * * *'], // every week on Tuesday ], - 'push' => null, + // Restricted to 'master' so a PR branch's commits are only + // ever built once, via the 'pull_request' event below. A + // broad `push: null` trigger (any branch) would otherwise + // fire a second, fully duplicate run of the whole pipeline + // (build, test, and the OCI artifact dance) for the exact + // same commit as its corresponding pull_request run. Master + // itself is never reached by 'pull_request' (it has no PR + // targeting itself), so its push-triggered publish path is + // unaffected. + 'push' => [ + 'branches' => ['master'], + ], 'pull_request' => [ 'branches' => ['master'], ], From f69009bb7e10f27a171c732a3c3db117be9345c8 Mon Sep 17 00:00:00 2001 From: Matthias Vogel Date: Thu, 1 Oct 2026 16:33:22 +0200 Subject: [PATCH 12/12] Restore non-master OCI artifact propagation Use freshly built dependency images for pull requests and manual branch runs. Keep master builds on published images and remove the PR-only gates. --- .github/workflows/build.yaml | 564 +++++++++++++++++------------------ ci/src/GithubJobBuilder.php | 30 +- 2 files changed, 288 insertions(+), 306 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ac27ad8d9..234e98e00 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -53,14 +53,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base:alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/apache/alpine @@ -72,7 +72,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/apache/alpine @@ -162,14 +162,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base:alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/alpine @@ -181,7 +181,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/alpine @@ -276,14 +276,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base:ubuntu-22.04' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -295,7 +295,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -333,7 +333,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base-app:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base-app/ubuntu-22.04 @@ -345,7 +345,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base-app_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' @@ -414,14 +414,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/bootstrap:alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' path: .ci-oci-image/bootstrap_alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -433,7 +433,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -471,7 +471,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/alpine @@ -483,7 +483,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' @@ -550,14 +550,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/bootstrap:ubuntu-22.04' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/bootstrap_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -569,7 +569,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -607,7 +607,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/base:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/base/ubuntu-22.04 @@ -619,7 +619,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/base_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' @@ -688,14 +688,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -707,7 +707,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -745,7 +745,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/alpine @@ -757,7 +757,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_alpine-${{ matrix.arch }}' @@ -824,14 +824,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -843,7 +843,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -881,7 +881,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/bootstrap:sha-${{ github.sha }}-${{ matrix.arch }}"-ubuntu-22.04' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/bootstrap/ubuntu-22.04 @@ -893,7 +893,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/bootstrap_ubuntu-22-04' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-bootstrap_ubuntu-22-04-${{ matrix.arch }}' @@ -962,14 +962,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base-app:ubuntu-22.04' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base-app_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base-app_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/dockerfile-build-env/latest @@ -981,7 +981,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/dockerfile-build-env/latest @@ -1063,14 +1063,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base:alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_alpine-${{ matrix.arch }}' path: .ci-oci-image/base_alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/nginx/alpine @@ -1082,7 +1082,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/nginx/alpine @@ -1172,14 +1172,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.1' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-1 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1 @@ -1191,7 +1191,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1 @@ -1247,14 +1247,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.1-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1-alpine @@ -1266,7 +1266,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.1-alpine @@ -1390,14 +1390,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.2' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-2 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2 @@ -1409,7 +1409,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2 @@ -1465,14 +1465,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.2-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2-alpine @@ -1484,7 +1484,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.2-alpine @@ -1608,14 +1608,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.3' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-3 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3 @@ -1627,7 +1627,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3 @@ -1683,14 +1683,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.3-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3-alpine @@ -1702,7 +1702,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.3-alpine @@ -1826,14 +1826,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.4' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-4 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4 @@ -1845,7 +1845,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4 @@ -1901,14 +1901,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.4-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4-alpine @@ -1920,7 +1920,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.4-alpine @@ -2044,14 +2044,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.5' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-5 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5 @@ -2063,7 +2063,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5 @@ -2119,14 +2119,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-apache:8.5-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-apache_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5-alpine @@ -2138,7 +2138,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache-dev/8.5-alpine @@ -2262,14 +2262,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2281,7 +2281,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2314,7 +2314,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1 @@ -2326,7 +2326,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-${{ matrix.arch }}' @@ -2359,14 +2359,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2378,7 +2378,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2411,7 +2411,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.1-alpine @@ -2423,7 +2423,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-1-alpine-${{ matrix.arch }}' @@ -2524,14 +2524,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2543,7 +2543,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2576,7 +2576,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2 @@ -2588,7 +2588,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-${{ matrix.arch }}' @@ -2621,14 +2621,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2640,7 +2640,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2673,7 +2673,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.2-alpine @@ -2685,7 +2685,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-2-alpine-${{ matrix.arch }}' @@ -2786,14 +2786,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2805,7 +2805,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2838,7 +2838,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3 @@ -2850,7 +2850,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-${{ matrix.arch }}' @@ -2883,14 +2883,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2902,7 +2902,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2935,7 +2935,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.3-alpine @@ -2947,7 +2947,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-3-alpine-${{ matrix.arch }}' @@ -3048,14 +3048,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3067,7 +3067,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3100,7 +3100,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4 @@ -3112,7 +3112,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-${{ matrix.arch }}' @@ -3145,14 +3145,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3164,7 +3164,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3197,7 +3197,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.4-alpine @@ -3209,7 +3209,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-4-alpine-${{ matrix.arch }}' @@ -3310,14 +3310,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3329,7 +3329,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3362,7 +3362,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5 @@ -3374,7 +3374,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-${{ matrix.arch }}' @@ -3407,14 +3407,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3426,7 +3426,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3459,7 +3459,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-apache:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-apache/8.5-alpine @@ -3471,7 +3471,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-apache_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-apache_8-5-alpine-${{ matrix.arch }}' @@ -3572,14 +3572,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1 @@ -3591,7 +3591,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1 @@ -3652,14 +3652,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1-alpine @@ -3671,7 +3671,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.1-alpine @@ -3800,14 +3800,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2 @@ -3819,7 +3819,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2 @@ -3880,14 +3880,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2-alpine @@ -3899,7 +3899,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.2-alpine @@ -4028,14 +4028,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3 @@ -4047,7 +4047,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3 @@ -4108,14 +4108,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3-alpine @@ -4127,7 +4127,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.3-alpine @@ -4256,14 +4256,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4 @@ -4275,7 +4275,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4 @@ -4336,14 +4336,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4-alpine @@ -4355,7 +4355,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.4-alpine @@ -4484,14 +4484,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5 @@ -4503,7 +4503,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5 @@ -4564,14 +4564,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5-alpine @@ -4583,7 +4583,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-dev/8.5-alpine @@ -4712,14 +4712,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.1' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-1 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1 @@ -4731,7 +4731,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1 @@ -4787,14 +4787,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.1-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1-alpine @@ -4806,7 +4806,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.1-alpine @@ -4930,14 +4930,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.2' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-2 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2 @@ -4949,7 +4949,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2 @@ -5005,14 +5005,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.2-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2-alpine @@ -5024,7 +5024,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.2-alpine @@ -5148,14 +5148,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.3' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-3 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3 @@ -5167,7 +5167,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3 @@ -5223,14 +5223,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.3-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3-alpine @@ -5242,7 +5242,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.3-alpine @@ -5366,14 +5366,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.4' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-4 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4 @@ -5385,7 +5385,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4 @@ -5441,14 +5441,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.4-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4-alpine @@ -5460,7 +5460,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.4-alpine @@ -5584,14 +5584,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.5' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-5 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5 @@ -5603,7 +5603,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5 @@ -5659,14 +5659,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php-nginx:8.5-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php-nginx_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5-alpine @@ -5678,7 +5678,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx-dev/8.5-alpine @@ -5802,14 +5802,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' path: .ci-oci-image/php_8-1 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5821,7 +5821,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5859,7 +5859,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1 @@ -5871,7 +5871,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-${{ matrix.arch }}' @@ -5904,14 +5904,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.1-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-1-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5923,7 +5923,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5961,7 +5961,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.1-alpine @@ -5973,7 +5973,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-1-alpine-${{ matrix.arch }}' @@ -6074,14 +6074,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' path: .ci-oci-image/php_8-2 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6093,7 +6093,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6131,7 +6131,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2 @@ -6143,7 +6143,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-${{ matrix.arch }}' @@ -6176,14 +6176,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.2-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-2-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6195,7 +6195,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6233,7 +6233,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.2-alpine @@ -6245,7 +6245,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-2-alpine-${{ matrix.arch }}' @@ -6346,14 +6346,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' path: .ci-oci-image/php_8-3 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6365,7 +6365,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6403,7 +6403,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3 @@ -6415,7 +6415,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-${{ matrix.arch }}' @@ -6448,14 +6448,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.3-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-3-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6467,7 +6467,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6505,7 +6505,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.3-alpine @@ -6517,7 +6517,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-3-alpine-${{ matrix.arch }}' @@ -6618,14 +6618,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' path: .ci-oci-image/php_8-4 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6637,7 +6637,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6675,7 +6675,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4 @@ -6687,7 +6687,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-${{ matrix.arch }}' @@ -6720,14 +6720,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.4-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-4-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6739,7 +6739,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6777,7 +6777,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.4-alpine @@ -6789,7 +6789,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-4-alpine-${{ matrix.arch }}' @@ -6890,14 +6890,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' path: .ci-oci-image/php_8-5 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6909,7 +6909,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6947,7 +6947,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5 @@ -6959,7 +6959,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-${{ matrix.arch }}' @@ -6992,14 +6992,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/php:8.5-alpine' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' path: .ci-oci-image/php_8-5-alpine - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -7011,7 +7011,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -7049,7 +7049,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php-nginx:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-nginx/8.5-alpine @@ -7061,7 +7061,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php-nginx_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php-nginx_8-5-alpine-${{ matrix.arch }}' @@ -7162,14 +7162,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7181,7 +7181,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7219,7 +7219,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1 @@ -7231,7 +7231,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-${{ matrix.arch }}' @@ -7264,14 +7264,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7283,7 +7283,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7321,7 +7321,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.1-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.1-alpine @@ -7333,7 +7333,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-1-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-1-alpine-${{ matrix.arch }}' @@ -7438,14 +7438,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7457,7 +7457,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7495,7 +7495,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2 @@ -7507,7 +7507,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-${{ matrix.arch }}' @@ -7540,14 +7540,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7559,7 +7559,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7597,7 +7597,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.2-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.2-alpine @@ -7609,7 +7609,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-2-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-2-alpine-${{ matrix.arch }}' @@ -7714,14 +7714,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7733,7 +7733,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7771,7 +7771,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3 @@ -7783,7 +7783,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-${{ matrix.arch }}' @@ -7816,14 +7816,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7835,7 +7835,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7873,7 +7873,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.3-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.3-alpine @@ -7885,7 +7885,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-3-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-3-alpine-${{ matrix.arch }}' @@ -7990,14 +7990,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -8009,7 +8009,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -8047,7 +8047,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4 @@ -8059,7 +8059,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-${{ matrix.arch }}' @@ -8092,14 +8092,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -8111,7 +8111,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -8149,7 +8149,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.4-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.4-alpine @@ -8161,7 +8161,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-4-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-4-alpine-${{ matrix.arch }}' @@ -8266,14 +8266,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8285,7 +8285,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8323,7 +8323,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5 @@ -8335,7 +8335,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-${{ matrix.arch }}' @@ -8368,14 +8368,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/toolbox:latest' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' path: .ci-oci-image/toolbox_latest - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8387,7 +8387,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8425,7 +8425,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/php:sha-${{ github.sha }}-${{ matrix.arch }}"-8.5-alpine' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/php-official/8.5-alpine @@ -8437,7 +8437,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/php_8-5-alpine' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-php_8-5-alpine-${{ matrix.arch }}' @@ -8645,7 +8645,7 @@ jobs: run: 'docker push "ghcr.io/webdevops/toolbox:sha-${{ github.sha }}-${{ matrix.arch }}"-latest' - name: 'Export image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/toolbox/latest @@ -8656,7 +8656,7 @@ jobs: outputs: 'type=oci,tar=false,name=ci-parent-image,dest=.ci-oci-image/toolbox_latest' - name: 'Upload image (OCI layout)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/upload-artifact@v4 with: name: 'docker-parent-toolbox_latest-${{ matrix.arch }}' @@ -8723,14 +8723,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: 'Download parent image (OCI layout): webdevops/base:ubuntu-22.04' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: actions/download-artifact@v4.1.9 with: name: 'docker-parent-base_ubuntu-22-04-${{ matrix.arch }}' path: .ci-oci-image/base_ubuntu-22-04 - name: 'Build (load locally)' - if: "${{ github.event_name != 'pull_request' }}" + if: "${{ github.ref == 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/vsftp/latest @@ -8742,7 +8742,7 @@ jobs: build-args: 'TARGETARCH=${{ matrix.arch }}' - name: 'Build (load locally, from parent artifact)' - if: "${{ github.event_name == 'pull_request' }}" + if: "${{ github.ref != 'refs/heads/master' }}" uses: docker/build-push-action@v6 with: context: docker/vsftp/latest diff --git a/ci/src/GithubJobBuilder.php b/ci/src/GithubJobBuilder.php index 68fac7955..773ba5b70 100644 --- a/ci/src/GithubJobBuilder.php +++ b/ci/src/GithubJobBuilder.php @@ -17,24 +17,6 @@ class GithubJobBuilder */ private const PARENT_OCI_TAG = 'ci-parent-image'; - /** - * Same-run parent artifact propagation (download/build-contexts - * override/export/upload) only ever runs for `pull_request` builds. - * Plain branch pushes (including master) and other trigger types (cron, - * workflow_dispatch) fall back to pulling the published parent image, to - * avoid doubling OCI artifact storage/network cost on every commit that - * is covered by both a `push` and a `pull_request` workflow run. Master - * publishing is unaffected, since master is only ever reached by `push`. - */ - private const PR_ONLY_IF = '${{ github.event_name == \'pull_request\' }}'; - - /** - * Logical negation of {@see self::PR_ONLY_IF}, kept as its own constant - * (rather than an inline literal) so the two conditions can never drift - * out of sync if the gating logic above ever changes. - */ - private const PR_ONLY_IF_NOT = '${{ github.event_name != \'pull_request\' }}'; - /** * @return array> */ @@ -91,13 +73,13 @@ public function getJobsDescription(array $node): array ...$this->downloadParentImageSteps($imageDependencies), array_filter([ 'name' => 'Build (load locally)', - 'if' => $hasImageDependencies ? self::PR_ONLY_IF_NOT : null, + 'if' => $hasImageDependencies ? '${{ github.ref == \'refs/heads/master\' }}' : null, 'uses' => 'docker/build-push-action@v6', 'with' => $this->buildPushWith($node), ], fn ($value): bool => $value !== null), $hasImageDependencies ? [ 'name' => 'Build (load locally, from parent artifact)', - 'if' => self::PR_ONLY_IF, + 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'docker/build-push-action@v6', 'with' => array_merge( $this->buildPushWith($node), @@ -129,7 +111,7 @@ public function getJobsDescription(array $node): array ], $hasChildren ? [ 'name' => 'Export image (OCI layout)', - 'if' => self::PR_ONLY_IF, + 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'docker/build-push-action@v6', 'with' => array_merge( [ @@ -152,7 +134,7 @@ public function getJobsDescription(array $node): array ] : null, $hasChildren ? [ 'name' => 'Upload image (OCI layout)', - 'if' => self::PR_ONLY_IF, + 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'actions/upload-artifact@v4', 'with' => [ 'name' => $this->getCiImageArtifactName($node['id']), @@ -280,7 +262,7 @@ private function downloadParentImageSteps(array $imageDependencies): array $imageIds = array_unique(array_values($imageDependencies)); return array_map(fn (string $imageId): array => [ 'name' => 'Download parent image (OCI layout): ' . $imageId, - 'if' => self::PR_ONLY_IF, + 'if' => '${{ github.ref != \'refs/heads/master\' }}', 'uses' => 'actions/download-artifact@v4.1.9', 'with' => [ 'name' => $this->getCiImageArtifactName($imageId), @@ -321,7 +303,7 @@ private function getCiImagePath(string $imageId): string * Buildx `build-contexts` value mapping every literal FROM/COPY --from * reference in $imageDependencies to the OCI layout downloaded from the * corresponding parent job's artifact, so BuildKit never needs to pull - * any of those images from Docker Hub during a pull_request build. Must + * any of those images from Docker Hub during a non-master build. Must * be reused unchanged for every Buildx invocation of this node (tested * build and OCI export alike), otherwise a later invocation silently * resolves a dependency from the registry again.