Skip to content

Commit 1db75d7

Browse files
committed
- Align s3 bucket layout
- Add Heroku 26 stack - Remove Heroku 22 stack (incompatible upstream, deprecated) - "Final" swoole 6.2.x version
1 parent fd8c62d commit 1db75d7

18 files changed

Lines changed: 136 additions & 105 deletions

File tree

.github/workflows/build.yml

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ concurrency:
66

77
on:
88
push:
9-
branches: [main]
9+
branches: [main,heroku26-swoole62]
1010
workflow_dispatch:
1111
workflow_call:
1212
inputs:
@@ -22,6 +22,7 @@ jobs:
2222
env:
2323
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
2424
S3_PREFIX: ${{ inputs.S3_PREFIX || matrix.stack.prefix }}
25+
S3_REGION: ${{ secrets.S3_REGION || 'us-east-1' }}
2526
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
2627
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
2728
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -30,11 +31,6 @@ jobs:
3031
fail-fast: false
3132
matrix:
3233
stack:
33-
- name: "heroku-22"
34-
arch: "amd64"
35-
prefix: "dist-heroku-22-develop/"
36-
upstream: "dist-heroku-22-stable/"
37-
os: "ubuntu-latest"
3834
- name: "heroku-24"
3935
arch: "amd64"
4036
prefix: "dist-heroku-24-amd64-develop/"
@@ -45,31 +41,41 @@ jobs:
4541
prefix: "dist-heroku-24-arm64-develop/"
4642
upstream: "dist-heroku-24-arm64-stable/"
4743
os: "ubuntu-24.04-arm"
44+
- name: "heroku-26"
45+
arch: "amd64"
46+
prefix: "dist-heroku-26-amd64-develop/"
47+
upstream: "dist-heroku-26-amd64-stable/"
48+
os: "ubuntu-latest"
49+
- name: "heroku-26"
50+
arch: "arm64"
51+
prefix: "dist-heroku-26-arm64-develop/"
52+
upstream: "dist-heroku-26-arm64-stable/"
53+
os: "ubuntu-24.04-arm"
4854
series:
49-
- { version: 20210902, php: "8.1", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["4.12.1", "22.1.2"] }
50-
- { version: 20220829, php: "8.2", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
51-
- { version: 20230831, php: "8.3", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
52-
- { version: 20240924, php: "8.4", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["6.3.0"], relay: ["0.21.0"], swoole: ["6.1.7"], openswoole: ["25.2.0", "26.2.0"] }
53-
- { version: 20250925, php: "8.5", liblzf: "3.6", lz4: "1.10.0", zstd: "1.5.7", igbinary: "3.2.17RC1", msgpack: "2.2.0", redis: ["6.3.0"], relay: ["0.21.0"], swoole: ["6.2.0RC1"], openswoole: ["26.2.0"] }
55+
- { php: "8.1", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["4.12.1", "22.1.2"] }
56+
- { php: "8.2", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
57+
- { php: "8.3", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["5.3.7", "6.3.0"], relay: ["0.21.0"], swoole: ["5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
58+
- { php: "8.4", liblzf: "3.6", lz4: "1.9.3", zstd: "1.4.9", igbinary: "3.2.15", msgpack: "2.2.0", redis: ["6.3.0"], relay: ["0.21.0"], swoole: ["6.1.7"], openswoole: ["25.2.0", "26.2.0"] }
59+
- { php: "8.5", liblzf: "3.6", lz4: "1.10.0", zstd: "1.5.7", igbinary: "3.2.17RC1", msgpack: "2.2.0", redis: ["6.3.0"], relay: ["0.21.0"], swoole: ["6.2.1"], openswoole: ["26.2.0"] }
5460
exclude:
5561
# heroku-24 no longer supports php-8.1
5662
- stack:
5763
name: "heroku-24"
5864
series:
59-
version: 20210902
60-
include:
61-
# heroku-24 cannot compile openswoole 4.12.1 anymore, include for heroku-22 only
65+
php: "8.1"
66+
# heroku-26 no longer supports php-8.1, 8.2, 8.3
6267
- stack:
63-
name: "heroku-22"
64-
arch: "amd64"
65-
prefix: "dist-heroku-22-develop/"
66-
upstream: "dist-heroku-22-stable/"
67-
os: "ubuntu-latest"
68+
name: "heroku-26"
6869
series:
69-
version: 20220829
70+
php: "8.1"
71+
- stack:
72+
name: "heroku-26"
73+
series:
7074
php: "8.2"
71-
openswoole:
72-
- "4.12.1"
75+
- stack:
76+
name: "heroku-26"
77+
series:
78+
php: "8.3"
7379

7480
steps:
7581
- name: Checkout
@@ -98,7 +104,7 @@ jobs:
98104
for (const { tag_name, prerelease, draft } of data) {
99105
const m = !prerelease && !draft && tag_name.match(re);
100106
if (!m) continue;
101-
const res = await fetch(`https://lang-php.s3.amazonaws.com/${prefix}php-${m[1]}.tar.gz`, { method: 'HEAD' });
107+
const res = await fetch(`https://heroku-buildpack-php.s3.amazonaws.com/${prefix}php-${m[1]}.tar.gz`, { method: 'HEAD' });
102108
if (res.ok) { core.exportVariable('PHP_VERSION', m[1]); break; }
103109
}
104110
@@ -112,35 +118,35 @@ jobs:
112118
run: ./scripts/build-lib.sh ${{ matrix.stack.name }} zstd "${{ matrix.series.zstd }}" true
113119

114120
- name: Build igbinary extension
115-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} igbinary "${{ matrix.series.igbinary }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
121+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} igbinary "${{ matrix.series.igbinary }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
116122

117123
- name: Build msgpack extension
118-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} msgpack "${{ matrix.series.msgpack }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
124+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} msgpack "${{ matrix.series.msgpack }}" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
119125

120126
- name: Build redis extensions
121127
run: |
122128
set -e
123129
for VERSION in ${{ join(matrix.series.redis, ' ') }}; do
124-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} redis "$VERSION" "php-${{ env.PHP_VERSION }},libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
130+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} redis "$VERSION" "php-${{ env.PHP_VERSION }},liblzf-*,lz4-*,zstd-*,ext-igbinary-*_php-${{ matrix.series.php }},ext-msgpack-*_php-${{ matrix.series.php }}" ${{ matrix.stack.upstream }} true
125131
done
126132
127133
- name: Build relay extension
128134
run: |
129135
set -e
130136
for VERSION in ${{ join(matrix.series.relay, ' ') }}; do
131-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} relay "$VERSION" "php-${{ env.PHP_VERSION }},libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/igbinary-*,extensions/no-debug-non-zts-${{ matrix.series.version }}/msgpack-*" ${{ matrix.stack.upstream }} true
137+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} relay "$VERSION" "php-${{ env.PHP_VERSION }},liblzf-*,lz4-*,zstd-*,ext-igbinary-*_php-${{ matrix.series.php }},ext-msgpack-*_php-${{ matrix.series.php }}" ${{ matrix.stack.upstream }} true
132138
done
133139
134140
- name: Build swoole extension
135141
run: |
136142
set -e
137143
for VERSION in ${{ join(matrix.series.swoole, ' ') }}; do
138-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} swoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
144+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} swoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
139145
done
140146
141147
- name: Build openswoole extension
142148
run: |
143149
set -e
144150
for VERSION in ${{ join(matrix.series.openswoole, ' ') }}; do
145-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} openswoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
151+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} openswoole "$VERSION" "php-${{ env.PHP_VERSION }}" ${{ matrix.stack.upstream }} true
146152
done

.github/workflows/mkrepo.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@ jobs:
3131
strategy:
3232
matrix:
3333
stack:
34-
- name: "heroku-22"
35-
stable: "dist-heroku-22-stable/"
36-
develop: "dist-heroku-22-develop/"
37-
os: "ubuntu-latest"
3834
- name: "heroku-24"
3935
stable: "dist-heroku-24-amd64-stable/"
4036
develop: "dist-heroku-24-amd64-develop/"
@@ -43,11 +39,22 @@ jobs:
4339
stable: "dist-heroku-24-arm64-stable/"
4440
develop: "dist-heroku-24-arm64-develop/"
4541
os: "ubuntu-24.04-arm"
42+
- name: "heroku-26"
43+
stable: "dist-heroku-26-amd64-stable/"
44+
develop: "dist-heroku-26-amd64-develop/"
45+
os: "ubuntu-latest"
46+
- name: "heroku-26"
47+
stable: "dist-heroku-26-arm64-stable/"
48+
develop: "dist-heroku-26-arm64-develop/"
49+
os: "ubuntu-24.04-arm"
4650

4751
env:
4852
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
4953
S3_PREFIX: ${{ inputs.S3_PREFIX || matrix.stack.develop }}
54+
S3_REGION: ${{ secrets.S3_REGION || 'us-east-1' }}
5055
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
56+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
57+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
5158

5259
steps:
5360
- name: Checkout
@@ -71,5 +78,5 @@ jobs:
7178
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
7279
run: |
7380
docker run --rm \
74-
--env-file=${BUILDPACK}/support/build/_docker/env.default \
81+
--env-file=${BUILDPACK}/support/build/docker/env.default \
7582
${{ matrix.stack.name }} mkrepo.sh --upload

.github/workflows/sync.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ jobs:
2020
strategy:
2121
matrix:
2222
stack:
23-
- name: "heroku-22"
24-
arch: "amd64"
25-
stable: "dist-heroku-22-stable/"
26-
develop: "dist-heroku-22-develop/"
27-
os: "ubuntu-latest"
2823
- name: "heroku-24"
2924
arch: "amd64"
3025
stable: "dist-heroku-24-amd64-stable/"
@@ -35,10 +30,23 @@ jobs:
3530
stable: "dist-heroku-24-arm64-stable/"
3631
develop: "dist-heroku-24-arm64-develop/"
3732
os: "ubuntu-24.04-arm"
33+
- name: "heroku-26"
34+
arch: "amd64"
35+
stable: "dist-heroku-26-amd64-stable/"
36+
develop: "dist-heroku-26-amd64-develop/"
37+
os: "ubuntu-latest"
38+
- name: "heroku-26"
39+
arch: "arm64"
40+
stable: "dist-heroku-26-arm64-stable/"
41+
develop: "dist-heroku-26-arm64-develop/"
42+
os: "ubuntu-24.04-arm"
3843

3944
env:
4045
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
4146
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
47+
S3_REGION: ${{ secrets.S3_REGION || 'us-east-1' }}
48+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
49+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
4250

4351
steps:
4452
- name: Checkout
@@ -63,5 +71,5 @@ jobs:
6371
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
6472
run: |
6573
echo "yes" | docker run --rm -i \
66-
--env-file=${BUILDPACK}/support/build/_docker/env.default \
74+
--env-file=${BUILDPACK}/support/build/docker/env.default \
6775
${{ matrix.stack.name }} sync.sh $S3_BUCKET ${{ matrix.stack.stable }} $S3_BUCKET ${{ matrix.stack.develop }}

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,22 +95,22 @@ Create a custom Dockerfile for `heroku-24`.
9595
./scripts/build-lib.sh heroku-24 zstd 1.4.9
9696

9797
# Build igbinary
98-
./scripts/build-extension.sh heroku-24 8.4 20240924 igbinary 3.2.16 "php-8.4.*" "dist-heroku-24-amd64-stable/"
98+
./scripts/build-extension.sh heroku-24 8.4 igbinary 3.2.16 "php-8.4.*" "dist-heroku-24-amd64-stable/"
9999

100100
# Build msgpack
101-
./scripts/build-extension.sh heroku-24 8.4 20240924 msgpack 2.2.0 "php-8.4.*" "dist-heroku-24-amd64-stable/"
101+
./scripts/build-extension.sh heroku-24 8.4 msgpack 2.2.0 "php-8.4.*" "dist-heroku-24-amd64-stable/"
102102

103103
# Build phpredis (has extra dependencies, libraries need to be "deployed" already)
104-
./scripts/build-extension.sh heroku-24 8.4 20240924 redis 6.3.0 "php-8.4.*,libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-20240924/igbinary-*,extensions/no-debug-non-zts-20240924/msgpack-*" "dist-heroku-24-amd64-stable/"
104+
./scripts/build-extension.sh heroku-24 8.4 redis 6.3.0 "php-8.4.*,liblzf-*,lz4-*,zstd-*,ext-igbinary-*_php-8.4,ext-msgpack-*_php-8.4" "dist-heroku-24-amd64-stable/"
105105

106106
# Build relay (has extra dependencies, libraries need to be "deployed" already)
107-
./scripts/build-extension.sh heroku-24 8.4 20240924 relay 0.20.0 "php-8.4.*,libraries/liblzf-*,libraries/lz4-*,libraries/zstd-*,extensions/no-debug-non-zts-20240924/igbinary-*,extensions/no-debug-non-zts-20240924/msgpack-*" "dist-heroku-24-amd64-stable/"
107+
./scripts/build-extension.sh heroku-24 8.4 relay 0.20.0 "php-8.4.*,liblzf-*,lz4-*,zstd-*,ext-igbinary-*_php-8.4,ext-msgpack-*_php-8.4" "dist-heroku-24-amd64-stable/"
108108

109109
# Build swoole
110-
./scripts/build-extension.sh heroku-24 8.4 20240924 swoole 6.1.7 "php-8.4.*" "dist-heroku-24-amd64-stable/"
110+
./scripts/build-extension.sh heroku-24 8.4 swoole 6.1.7 "php-8.4.*" "dist-heroku-24-amd64-stable/"
111111

112112
# Build openswoole
113-
./scripts/build-extension.sh heroku-24 8.4 20240924 openswoole 25.2.0 "php-8.4.*" "dist-heroku-24-amd64-stable/"
113+
./scripts/build-extension.sh heroku-24 8.4 openswoole 25.2.0 "php-8.4.*" "dist-heroku-24-amd64-stable/"
114114
```
115115
### Versions
116116

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"type": "library",
55
"license": "MIT",
66
"require": {
7-
"php": "^8.3",
7+
"php": "^8.4",
88
"ext-igbinary": "*",
99
"ext-msgpack": "*",
1010
"ext-redis": "*",

composer.lock

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/igbinary

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
22

3-
dep_name=$(basename $BASH_SOURCE)
3+
dep_name=ext-igbinary
44

5-
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl
5+
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/formulae/include/pecl-ext

extensions/msgpack

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
22

3-
dep_name=$(basename $BASH_SOURCE)
3+
dep_name=ext-msgpack
44

5-
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl
5+
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/formulae/include/pecl-ext

extensions/openswoole

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env bash
22

3-
dep_name=$(basename $BASH_SOURCE)
3+
dep_name=ext-openswoole
44

55
CONFIGURE_EXTRA="--enable-swoole-json --enable-swoole-curl --enable-http2 --enable-sockets --enable-mysqlnd --enable-openssl --with-postgres"
66

7-
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl
7+
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/formulae/include/pecl-ext

extensions/redis

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22

3-
dep_name=$(basename $BASH_SOURCE)
3+
dep_name=ext-redis
44

55
series=$(/app/.heroku/php/bin/php-config --version | cut -d. -f1,2)
66

@@ -10,4 +10,4 @@ CONFIGURE_EXTRA="--enable-redis-igbinary --enable-redis-msgpack --enable-redis-l
1010

1111
MANIFEST_REQUIRE="${MANIFEST_REQUIRE:-"{\"heroku-sys/php\":\"${series}.*\",\"heroku-sys/liblzf\":\"*\",\"heroku-sys/lz4\":\"*\",\"heroku-sys/zstd\":\"*\",\"heroku-sys/ext-json\":\"*\",\"heroku-sys/ext-igbinary\":\"*\",\"heroku-sys/ext-msgpack\":\"*\"}"}"
1212

13-
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl
13+
source $(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/formulae/include/pecl-ext

0 commit comments

Comments
 (0)