Skip to content

Commit 9f28b96

Browse files
authored
Update build-php-unix.yml
1 parent 523e135 commit 9f28b96

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

.github/workflows/build-php-unix.yml

+30-7
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,34 @@ jobs:
120120
run: |
121121
if [ "${{ steps.process-env.outputs.OS }}" = "linux" ]; then
122122
${{ steps.process-env.outputs.CMD }} install-pkg upx
123-
UPX=--with-upx-pack
123+
if [ "${{ steps.process-env.outputs.ARCH }}" = "x86_64" ]; then
124+
UPX=--with-upx-pack
125+
fi
124126
fi
125127
126128
${{ steps.process-env.outputs.CMD }} build --build-cli --build-micro --build-fpm ${{ steps.process-env.outputs.EXTENSIONS }} --debug $UPX
127129
130+
# Copy out from buildroot, because docker build has different permission
131+
mkdir -p tmp_dist/
132+
cp buildroot/bin/php tmp_dist/
133+
cp buildroot/bin/micro.sfx tmp_dist/
134+
cp buildroot/bin/php-fpm tmp_dist/
135+
136+
# UPX outside for linux-aarch64
137+
if [ "${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}" = "linux-aarch64" ]; then
138+
mkdir -p upx-x86_64
139+
cd upx-x86_64
140+
curl -#fSL -o upx.txz https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-amd64_linux.tar.xz
141+
tar -xf upx.txz --strip-components 1
142+
./upx --best ../tmp_dist/php
143+
./upx --best ../tmp_dist/micro.sfx
144+
SFX_SIZE=$(readelf -l ../tmp_dist/micro.sfx | awk '/LOAD|GNU_STACK/ {getline; print $1, $2, $3, $4, $6, $7}' | sed -n '2p' | awk '{print $1}')
145+
head -c $(printf "%d" $SFX_SIZE) ../tmp_dist/micro.sfx > ../tmp_dist/micro.sfx.new
146+
mv ../tmp_dist/micro.sfx.new ../tmp_dist/micro.sfx
147+
./upx --best ../tmp_dist/php-fpm
148+
cd ..
149+
fi
150+
128151
PHPVER=$(cat source/php-src/main/php_version.h | grep "PHP_VERSION " | awk -F\" '{print $2}')
129152
130153
if [ ! -d "dist" ]; then
@@ -133,9 +156,9 @@ jobs:
133156
134157
sudo chmod -R 777 dist
135158
136-
tar -czf dist/php-$PHPVER-cli-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C buildroot/bin/ php
137-
tar -czf dist/php-$PHPVER-micro-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C buildroot/bin/ micro.sfx
138-
tar -czf dist/php-$PHPVER-fpm-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C buildroot/bin/ php-fpm
159+
tar -czf dist/php-$PHPVER-cli-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C tmp_dist/ php
160+
tar -czf dist/php-$PHPVER-micro-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C tmp_dist/ micro.sfx
161+
tar -czf dist/php-$PHPVER-fpm-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}.tar.gz -C tmp_dist/ php-fpm
139162
if [ "${{ matrix.php-version }}" == "8.3" ] && [ "${{ matrix.runner }}" == "ubuntu-latest" ]; then
140163
cp -r buildroot/license dist/
141164
cp buildroot/build-extensions.json dist/
@@ -158,7 +181,7 @@ jobs:
158181
with:
159182
name: php-${{ matrix.php-version }}-${{ matrix.combination }}-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}
160183
path: |
161-
buildroot/bin/php
162-
buildroot/bin/php-fpm
163-
buildroot/bin/micro.sfx
184+
tmp_dist/php
185+
tmp_dist/php-fpm
186+
tmp_dist/micro.sfx
164187
if-no-files-found: error

0 commit comments

Comments
 (0)