Modernize images and move PHP 8.1 to legacy
Tests / integration (8.2, alpine) (push) Canceled after 0s
Tests / integration (8.2, debian) (push) Canceled after 0s
Tests / integration (8.3, alpine) (push) Canceled after 0s
Tests / integration (8.3, debian) (push) Canceled after 0s
Tests / integration (8.4, alpine) (push) Canceled after 0s
Tests / integration (8.4, debian) (push) Canceled after 0s
Tests / integration (8.5, alpine) (push) Canceled after 0s
Tests / integration (8.5, debian) (push) Canceled after 0s

PHP 8.1 is end-of-life. It is dropped from the default build and test
matrices. 8.1 and 8.1-alpine are still built, multi-arch, by the
manual legacy job (workflow_dispatch with legacy=true), together with
7.2, 7.3, 7.4 and 8.0. This replaces manual-build.yml.
This commit is contained in:
jkaninda committed 2026-10-22 05:30:34 +02:00
1 parent c602e1a0ad
commit 5abd5bc076
24 files changed
+857 -595

No files matched your search

+78 -44
View File
@@ -3,62 +3,96 @@ on:
push:
branches:
- main
workflow_dispatch:
inputs:
legacy:
description: 'Also build legacy images (7.2, 7.3, 7.4, 8.0, 8.1)'
required: false
default: false
type: boolean
env:
LATEST_PHP: "8.5"
jobs:
docker:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ["8.2", "8.3", "8.4", "8.5"]
variant: ["debian", "alpine"]
steps:
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to DockerHub
uses: docker/login-action@v2
- uses: actions/checkout@v7
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to DockerHub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push 8.1
uses: docker/build-push-action@v3
- name: Compute tags
id: meta
run: |
image="${{ vars.BUILDKIT_IMAGE }}"
if [ "${{ matrix.variant }}" = "alpine" ]; then
file=./src/docker/Dockerfile.alpine
tags="${image}:${{ matrix.php }}-alpine"
[ "${{ matrix.php }}" = "${LATEST_PHP}" ] && tags="${tags},${image}:alpine"
else
file=./src/docker/Dockerfile
tags="${image}:${{ matrix.php }}"
[ "${{ matrix.php }}" = "${LATEST_PHP}" ] && tags="${tags},${image}:latest"
fi
echo "file=${file}" >> "$GITHUB_OUTPUT"
echo "tags=${tags}" >> "$GITHUB_OUTPUT"
- name: Build and push ${{ matrix.php }} ${{ matrix.variant }}
uses: docker/build-push-action@v7
with:
file: "./src/docker/Dockerfile"
context: .
file: ${{ steps.meta.outputs.file }}
push: true
pull: true
platforms: linux/amd64,linux/arm64
build-args: |
phpVersion=8.1
tags: "${{ vars.BUILDKIT_IMAGE }}:8.1"
-
name: Build and push 8.2
uses: docker/build-push-action@v3
phpVersion=${{ matrix.php }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha,scope=${{ matrix.php }}-${{ matrix.variant }}
cache-to: type=gha,mode=max,scope=${{ matrix.php }}-${{ matrix.variant }}
legacy:
if: ${{ github.event_name == 'workflow_dispatch' && inputs.legacy }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { tag: "7.2", phpVersion: "7.2", file: ./src/docker/7.2/Dockerfile, platforms: linux/amd64 }
- { tag: "7.3", phpVersion: "7.3", file: ./src/docker/7.3/Dockerfile, platforms: linux/amd64 }
- { tag: "7.4", phpVersion: "7.4", file: ./src/docker/7.4/Dockerfile, platforms: linux/amd64 }
- { tag: "8.0", phpVersion: "8.0", file: ./src/docker/8.0/Dockerfile, platforms: "linux/amd64,linux/arm64" }
- { tag: "8.1", phpVersion: "8.1", file: ./src/docker/Dockerfile, platforms: "linux/amd64,linux/arm64" }
- { tag: "8.1-alpine", phpVersion: "8.1", file: ./src/docker/Dockerfile.alpine, platforms: "linux/amd64,linux/arm64" }
steps:
- uses: actions/checkout@v7
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to DockerHub
uses: docker/login-action@v4
with:
file: "./src/docker/Dockerfile"
push: true
platforms: linux/amd64,linux/arm64
build-args: |
phpVersion=8.2
tags: "${{vars.BUILDKIT_IMAGE}}:8.2"
-
name: Build and push 8.3
uses: docker/build-push-action@v3
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push ${{ matrix.tag }}
uses: docker/build-push-action@v7
with:
file: "./src/docker/Dockerfile"
context: .
file: ${{ matrix.file }}
push: true
platforms: linux/amd64,linux/arm64
platforms: ${{ matrix.platforms }}
build-args: |
phpVersion=8.3
tags: |
"${{vars.BUILDKIT_IMAGE}}:8.3"
-
name: Build and push 8.4
uses: docker/build-push-action@v3
with:
file: "./src/docker/Dockerfile"
push: true
platforms: linux/amd64,linux/arm64
build-args: |
phpVersion=8.4
tags: |
"${{vars.BUILDKIT_IMAGE}}:8.4"
"${{vars.BUILDKIT_IMAGE}}:latest"
phpVersion=${{ matrix.phpVersion }}
tags: ${{ vars.BUILDKIT_IMAGE }}:${{ matrix.tag }}