Skip to content

Commit

Permalink
chore: enable php 8.4 ci workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
joseluisq committed Dec 17, 2024
1 parent 6ddaf4a commit beb8b69
Show file tree
Hide file tree
Showing 3 changed files with 215 additions and 23 deletions.
78 changes: 78 additions & 0 deletions .github/workflows/devel-8.4.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: devel-8.4
on:
pull_request:
branches:
- master
paths:
- 8.4-fpm/**
- .github/workflows/devel-8.4.yml
push:
branches:
- master
paths:
- 8.4-fpm/**
- .github/workflows/devel-8.4.yml

jobs:
php:
runs-on: ubuntu-22.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@v4
with:
fetch-depth: 1
-
name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: 8.4-fpm-${{ matrix.arch }}-buildx-${{ hashFiles('8.4-fpm/**') }}
restore-keys: |
8.4-fpm-${{ matrix.arch }}-buildx-${{ hashFiles('8.4-fpm/**') }}
8.4-fpm-${{ matrix.arch }}-buildx-
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Build and Test
uses: docker/build-push-action@v5
with:
push: false
provenance: false
context: .
platforms: ${{ matrix.arch }}
file: 8.4-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.3.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 @@ -93,17 +93,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.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: |
Expand All @@ -123,14 +112,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.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
136 changes: 136 additions & 0 deletions .github/workflows/release-8.4.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: release-v8.4
on:
push:
tags:
- 'v8.4.[0-9]+'
- 'v8.4.[0-9]+-beta.[0-9]+'

jobs:
docker-build:
runs-on: ubuntu-22.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.4 (${{ matrix.build }})
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v5
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@v3
-
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
with:
push: true
provenance: false
context: .
platforms: ${{ matrix.arch }}
file: 8.4-fpm/Dockerfile
tags: ${{ steps.meta.outputs.tags }}

docker-manifest:
needs: docker-build
runs-on: ubuntu-22.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@v3
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.4 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.4 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

0 comments on commit beb8b69

Please sign in to comment.