@@ -120,11 +120,34 @@ jobs:
120
120
run : |
121
121
if [ "${{ steps.process-env.outputs.OS }}" = "linux" ]; then
122
122
${{ 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
124
126
fi
125
127
126
128
${{ steps.process-env.outputs.CMD }} build --build-cli --build-micro --build-fpm ${{ steps.process-env.outputs.EXTENSIONS }} --debug $UPX
127
129
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
+
128
151
PHPVER=$(cat source/php-src/main/php_version.h | grep "PHP_VERSION " | awk -F\" '{print $2}')
129
152
130
153
if [ ! -d "dist" ]; then
@@ -133,9 +156,9 @@ jobs:
133
156
134
157
sudo chmod -R 777 dist
135
158
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
139
162
if [ "${{ matrix.php-version }}" == "8.3" ] && [ "${{ matrix.runner }}" == "ubuntu-latest" ]; then
140
163
cp -r buildroot/license dist/
141
164
cp buildroot/build-extensions.json dist/
@@ -158,7 +181,7 @@ jobs:
158
181
with :
159
182
name : php-${{ matrix.php-version }}-${{ matrix.combination }}-${{ steps.process-env.outputs.OS }}-${{ steps.process-env.outputs.ARCH }}
160
183
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
164
187
if-no-files-found : error
0 commit comments