Skip to content

Commit a56e9a5

Browse files
authored
3.x tweaks and fixes (#41)
1 parent d3b0175 commit a56e9a5

9 files changed

Lines changed: 38 additions & 26 deletions

File tree

.github/workflows/build.yml

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ on:
1212

1313
jobs:
1414
build:
15-
name: Build and deploy ${{ matrix.stack.name }} extensions with PHP ${{ matrix.series.php }} on ${{ matrix.stack.os }}
15+
name: Build PHP ${{ matrix.series.php }} (${{ matrix.stack.name }}, ${{ matrix.stack.arch }})
1616
runs-on: ${{ matrix.stack.os }}
1717
timeout-minutes: 20
1818
env:
1919
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
20-
S3_REGION: ${{ secrets.S3_REGION || '' }}
2120
S3_PREFIX: ${{ inputs.S3_PREFIX || matrix.stack.prefix }}
2221
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
2322
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
@@ -28,20 +27,26 @@ jobs:
2827
matrix:
2928
stack:
3029
- name: "heroku-22"
30+
arch: "amd64"
3131
prefix: "dist-heroku-22-develop/"
32+
upstream: "dist-heroku-22-stable/"
3233
os: "ubuntu-latest"
3334
- name: "heroku-24"
35+
arch: "amd64"
3436
prefix: "dist-heroku-24-amd64-develop/"
37+
upstream: "dist-heroku-24-amd64-stable/"
3538
os: "ubuntu-latest"
3639
- name: "heroku-24"
40+
arch: "arm64"
3741
prefix: "dist-heroku-24-arm64-develop/"
42+
upstream: "dist-heroku-24-arm64-stable/"
3843
os: "ubuntu-24.04-arm"
3944
series:
40-
- {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.6.8"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["4.12.1", "22.1.2"]}
41-
- {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.6.8"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"]}
42-
- {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.6.8", "0.20.0"], swoole: ["5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"]}
43-
- {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.20.0"], swoole: ["6.1.7"], openswoole: ["25.2.0", "26.2.0"]}
44-
- {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.20.0"], swoole: ["6.2.0RC1"], openswoole: ["26.2.0"]}
45+
- { 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.6.8"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["4.12.1", "22.1.2"] }
46+
- { 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.6.8"], swoole: ["4.8.13", "5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
47+
- { 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.6.8", "0.20.0"], swoole: ["5.1.8", "6.1.7"], openswoole: ["22.1.2", "25.2.0", "26.2.0"] }
48+
- { 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.20.0"], swoole: ["6.1.7"], openswoole: ["25.2.0", "26.2.0"] }
49+
- { 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.20.0"], swoole: ["6.2.0RC1"], openswoole: ["26.2.0"] }
4550
exclude:
4651
# heroku-24 no longer supports php-8.1
4752
- stack:
@@ -52,7 +57,9 @@ jobs:
5257
# heroku-24 cannot compile openswoole 4.12.1 anymore, include for heroku-22 only
5358
- stack:
5459
name: "heroku-22"
60+
arch: "amd64"
5561
prefix: "dist-heroku-22-develop/"
62+
upstream: "dist-heroku-22-stable/"
5663
os: "ubuntu-latest"
5764
series:
5865
version: 20220829
@@ -86,35 +93,35 @@ jobs:
8693
run: ./scripts/build-lib.sh ${{ matrix.stack.name }} zstd "${{ matrix.series.zstd }}" true
8794

8895
- name: Build igbinary extension
89-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} igbinary "${{ matrix.series.igbinary }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.prefix }} true
96+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} igbinary "${{ matrix.series.igbinary }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
9097

9198
- name: Build msgpack extension
92-
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} msgpack "${{ matrix.series.msgpack }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.prefix }} true
99+
run: ./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} msgpack "${{ matrix.series.msgpack }}" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
93100

94101
- name: Build redis extensions
95102
run: |
96103
set -e
97104
for VERSION in ${{ join(matrix.series.redis, ' ') }}; do
98-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} redis "$VERSION" "php-${{ matrix.series.php }}.*,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.prefix }} true
105+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} redis "$VERSION" "php-${{ matrix.series.php }}.*,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
99106
done
100107
101108
- name: Build relay extension
102109
run: |
103110
set -e
104111
for VERSION in ${{ join(matrix.series.relay, ' ') }}; do
105-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} relay "$VERSION" "php-${{ matrix.series.php }}.*,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.prefix }} true
112+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} relay "$VERSION" "php-${{ matrix.series.php }}.*,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
106113
done
107114
108115
- name: Build swoole extension
109116
run: |
110117
set -e
111118
for VERSION in ${{ join(matrix.series.swoole, ' ') }}; do
112-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} swoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.prefix }} true
119+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} swoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
113120
done
114121
115122
- name: Build openswoole extension
116123
run: |
117124
set -e
118125
for VERSION in ${{ join(matrix.series.openswoole, ' ') }}; do
119-
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} openswoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.prefix }} true
120-
done
126+
./scripts/build-extension.sh ${{ matrix.stack.name }} ${{ matrix.series.php }} ${{ matrix.series.version }} openswoole "$VERSION" "php-${{ matrix.series.php }}.*" ${{ matrix.stack.upstream }} true
127+
done

.github/workflows/mkrepo.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ on:
1818
jobs:
1919

2020
mkrepo:
21-
name: Make repository
21+
name: Make repository (${{ matrix.stack.name }}, ${{ inputs.S3_PREFIX || matrix.stack.develop }})
2222
runs-on: ubuntu-latest
2323
timeout-minutes: 20
2424

25-
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
25+
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
2626

2727
strategy:
2828
matrix:
@@ -42,7 +42,6 @@ jobs:
4242

4343
env:
4444
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
45-
S3_REGION: ${{ secrets.S3_REGION || '' }}
4645
S3_PREFIX: ${{ inputs.S3_PREFIX || matrix.stack.develop }}
4746
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
4847

@@ -58,7 +57,7 @@ jobs:
5857

5958
- name: Build Dockerfile
6059
run: ./scripts/create-dockerfile.sh ${{ matrix.stack.name }}
61-
60+
6261
- name: Docker build
6362
run: ./scripts/build-dockerfile.sh ${{ matrix.stack.name }}
6463

.github/workflows/pr.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@ jobs:
99
uses: ./.github/workflows/build.yml
1010
with:
1111
S3_PREFIX: pull-requests/${{ github.event.number }}/
12+
secrets: inherit
1213

1314
call-mkrepo:
1415
name: Make repositories
16+
needs: call-build
1517
uses: ./.github/workflows/mkrepo.yml
1618
with:
1719
S3_PREFIX: pull-requests/${{ github.event.number }}/
20+
secrets: inherit

.github/workflows/sync.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ jobs:
3131

3232
env:
3333
S3_BUCKET: ${{ secrets.S3_BUCKET || 'heroku-php-extensions' }}
34-
S3_REGION: ${{ secrets.S3_REGION || '' }}
3534
BUILDPACK: ./vendor/heroku/heroku-buildpack-php
3635

3736
steps:
@@ -46,7 +45,7 @@ jobs:
4645

4746
- name: Build Dockerfile
4847
run: ./scripts/create-dockerfile.sh ${{ matrix.stack.name }}
49-
48+
5049
- name: Docker build
5150
run: ./scripts/build-dockerfile.sh ${{ matrix.stack.name }}
5251

scripts/build-dockerfile.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
44

55
HEROKUSTACK="$1" # e.g. "heroku-24"
66

7-
docker build --pull --tag "$HEROKUSTACK" --file "docker/build/${HEROKUSTACK}.Dockerfile" ${SCRIPT_DIR}/..
7+
docker build --pull --tag "$HEROKUSTACK" --file "docker/build/${HEROKUSTACK}.Dockerfile" ${SCRIPT_DIR}/..

scripts/build-extension.sh

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

3+
set -euo pipefail
4+
35
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
46

57
HEROKUSTACK="$1" # e.g. "heroku-22"
@@ -8,7 +10,7 @@ PHP_APIVERSION="$3" # e.g. "20240924"
810
EXTENSION_NAME="$4" # e.g. "igbinary"
911
EXTENSION_VERSION="$5" # e.g. "3.2.15"
1012
EXTENSION_DEPS="$6" # e.g. "php-$PHP_VERSION.*"
11-
UPSTREAM_S3_PREFIX="$7" # e.g. "dist-heroku-24-amd64-stable/"
13+
UPSTREAM_S3_PREFIX="$7" # upstream (lang-php) S3 prefix, e.g. "dist-heroku-24-amd64-stable/"
1214
WITH_DEPLOY=${8:-"false"} # e.g. "true" or "false"
1315

1416
if [ "$EXTENSION_VERSION" == "" ]; then
@@ -50,4 +52,4 @@ docker run --rm \
5052
${HEROKUSTACK} ${COMMAND} \
5153
${OVERWRITE_FLAG} extensions/no-debug-non-zts-${PHP_APIVERSION}/${EXTENSION_NAME}-${EXTENSION_VERSION}
5254

53-
set +x
55+
set +x

scripts/build-lib.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22

3+
set -euo pipefail
4+
35
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
46

57
HEROKUSTACK=$1 # e.g. "heroku-24"
@@ -40,4 +42,4 @@ docker run --rm \
4042
$HEROKUSTACK \
4143
${COMMAND} ${OVERWRITE_FLAG} libraries/${LIBNAME}-${LIBVERSION}
4244

43-
set +x
45+
set +x

scripts/create-dockerfile.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ cat ${SCRIPT_DIR}/../vendor/heroku/heroku-buildpack-php/support/build/_docker/${
99
cat <<EOF >> "${SCRIPT_DIR}/../docker/build/${HEROKUSTACK}.Dockerfile"
1010
ENV WORKSPACE_DIR=/workspace
1111
ENV PATH=/app/vendor/heroku/heroku-buildpack-php/support/build/_util:\$PATH
12-
EOF
12+
EOF

scripts/setup-local.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ composer install --working-dir=${SCRIPT_DIR}/.. --prefer-dist --no-progress --no
99
cp ${SCRIPT_DIR}/../vendor/heroku/heroku-buildpack-php/requirements.txt .
1010

1111
# Create environment file
12-
cp ${SCRIPT_DIR}/../.env.example ${SCRIPT_DIR}/../.env
12+
cp ${SCRIPT_DIR}/../.env.example ${SCRIPT_DIR}/../.env

0 commit comments

Comments
 (0)