Skip to content

Commit

Permalink
feat: php 8.3.0 (#26)
Browse files Browse the repository at this point in the history
* v8.3.0 (php:8.3.0-fpm-alpine3.17)
* feat: zstd extension
* refactor: disable not php-8.3-ready extensions temporarily
    the following extensions still don't build in `php:8.3.0-fpm-alpine3.17`
    - imagick
    - phalcon
    - xdebug
  • Loading branch information
joseluisq authored Nov 28, 2023
1 parent ff942ad commit 3641ff4
Show file tree
Hide file tree
Showing 12 changed files with 1,419 additions and 81 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/devel-8.3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: devel-8.3
on:
pull_request:
branches:
- master
paths:
- 8.3-fpm/**
push:
branches:
- master
paths:
- 8.3-fpm/**

jobs:
php:
runs-on: ubuntu-20.04
strategy:
matrix:
build:
- amd64
- "386"
- arm64
- armv7
- armv6
include:
- build: amd64
arch: linux/amd64
- build: "386"
arch: linux/386
- build: arm64
arch: linux/arm64
- build: armv6
arch: linux/arm/v6
- build: armv7
arch: linux/arm/v7
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
-
name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: 8.3-fpm-${{ matrix.arch }}-buildx-${{ github.sha }}
restore-keys: |
8.3-fpm-${{ matrix.arch }}-buildx-
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Build and Test
uses: docker/build-push-action@v3
with:
push: false
context: .
platforms: ${{ matrix.arch }}
file: 8.3-fpm/Dockerfile
tags: joseluisq/php-fpm:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
-
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
24 changes: 1 addition & 23 deletions .github/workflows/release-8.2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
with:
images: joseluisq/php-fpm
flavor: |
latest=true
latest=false
tags: |
type=semver,pattern={{major}}.{{minor}}-${{ matrix.build }}
-
Expand Down Expand Up @@ -92,17 +92,6 @@ jobs:
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER_MINOR
-
name: Push latest (PHP 8.2 or newer)
run: |
docker manifest create \
joseluisq/php-fpm:latest \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:latest
-
name: Pull all images
run: |
Expand All @@ -122,14 +111,3 @@ jobs:
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER
-
name: Push semver major alias (PHP 8.2 or newer)
run: |
docker manifest create \
joseluisq/php-fpm:$SEMVER_MAJOR \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER_MAJOR
135 changes: 135 additions & 0 deletions .github/workflows/release-8.3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: release-v8.3
on:
push:
tags:
- 'v8.3.[0-9]+'
- 'v8.3.[0-9]+-beta.[0-9]+'

jobs:
docker-build:
runs-on: ubuntu-20.04
strategy:
matrix:
build:
- amd64
- 386
- arm64
- armv7
- armv6
include:
- build: amd64
arch: linux/amd64
- build: 386
arch: linux/386
- build: arm64
arch: linux/arm64
- build: armv6
arch: linux/arm/v6
- build: armv7
arch: linux/arm/v7
name: PHP 8.3 (${{ matrix.build }})
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: joseluisq/php-fpm
flavor: |
latest=true
tags: |
type=semver,pattern={{major}}.{{minor}}-${{ matrix.build }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v3
with:
push: true
context: .
platforms: ${{ matrix.arch }}
file: 8.3-fpm/Dockerfile
tags: ${{ steps.meta.outputs.tags }}

docker-manifest:
needs: docker-build
runs-on: ubuntu-20.04
steps:
- name: Set envs
run: |
github_ref=${GITHUB_REF#refs/tags/}
SEMVER=${github_ref##*v}
echo "SEMVER=${SEMVER}" >> $GITHUB_ENV
echo "SEMVER_MAJOR=${SEMVER%.*.*}" >> $GITHUB_ENV
echo "SEMVER_MINOR=${SEMVER%.*}" >> $GITHUB_ENV
-
name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Push semver minor alias
run: |
docker manifest create \
joseluisq/php-fpm:$SEMVER_MINOR \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER_MINOR
-
name: Push latest (PHP 8.3 or newer)
run: |
docker manifest create \
joseluisq/php-fpm:latest \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:latest
-
name: Pull all images
run: |
docker pull joseluisq/php-fpm:$SEMVER_MINOR-amd64
docker pull joseluisq/php-fpm:$SEMVER_MINOR-386
docker pull joseluisq/php-fpm:$SEMVER_MINOR-arm64
docker pull joseluisq/php-fpm:$SEMVER_MINOR-armv6
docker pull joseluisq/php-fpm:$SEMVER_MINOR-armv7
-
name: Push semver alias
run: |
docker manifest create \
joseluisq/php-fpm:$SEMVER \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER
-
name: Push semver major alias (PHP 8.3 or newer)
run: |
docker manifest create \
joseluisq/php-fpm:$SEMVER_MAJOR \
--amend joseluisq/php-fpm:$SEMVER_MINOR-amd64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-386 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-arm64 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv6 \
--amend joseluisq/php-fpm:$SEMVER_MINOR-armv7
docker manifest push joseluisq/php-fpm:$SEMVER_MAJOR
Loading

0 comments on commit 3641ff4

Please sign in to comment.