Skip to content

Commit 9a5676a

Browse files
authored
Fix #94: Enable UPX compression for macOS and Windows (#101)
1 parent 934a7f6 commit 9a5676a

6 files changed

Lines changed: 20 additions & 0 deletions

File tree

.github/workflows/package-static.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ jobs:
144144
- name: Set up MSVC
145145
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756
146146

147+
147148
- name: Cache Windows package dependencies
148149
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
149150
with:

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ jobs:
8585
- name: Set up MSVC
8686
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756
8787

88+
8889
- name: Cache Windows package dependencies
8990
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
9091
with:

.github/workflows/run-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ jobs:
106106
- name: Set up MSVC
107107
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756
108108

109+
109110
- name: Cache Windows package dependencies
110111
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
111112
with:

build/package-macos.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ require_command() {
8686
fi
8787
}
8888

89+
8990
write_log_tail() {
9091
local path="$1"
9192
if [ -f "$path" ]; then
@@ -142,6 +143,10 @@ for command in php composer tar curl rustup cargo make; do
142143
require_command "$command"
143144
done
144145

146+
if ! command -v wrappe >/dev/null 2>&1; then
147+
invoke cargo install --locked --version 1.0.4 wrappe
148+
fi
149+
145150
mkdir -p "$DIST_PATH" "$WORK_PATH"
146151
rm -f "${DIST_PATH}/yiipress.phar"
147152

@@ -226,5 +231,13 @@ fi
226231
invoke php bin/spc micro:combine "$PHAR_PATH" -O "$BIN_PATH"
227232
popd >/dev/null
228233

234+
chmod +x "$BIN_PATH"
235+
PACK_PATH="${WORK_PATH}/wrappe-input"
236+
PACKED_PATH="${WORK_PATH}/yiipress-packed"
237+
rm -rf "$PACK_PATH" "$PACKED_PATH"
238+
mkdir -p "$PACK_PATH"
239+
cp "$BIN_PATH" "$PACK_PATH/yiipress"
240+
invoke wrappe --compression 16 "$PACK_PATH" yiipress "$PACKED_PATH"
241+
mv "$PACKED_PATH" "$BIN_PATH"
229242
chmod +x "$BIN_PATH"
230243
printf 'Built %s\n' "$BIN_PATH"

build/package-windows.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ try {
214214
"--without-suggestions"
215215
)
216216
Invoke-NativeCommand "php" @("bin/spc", "doctor", "--auto-fix")
217+
Invoke-NativeCommand "php" @("bin/spc", "install-pkg", "upx")
217218
$buildrootLibraryPath = Join-Path $staticPhpPath "buildroot/lib"
218219
New-Item -ItemType Directory -Force -Path $buildrootLibraryPath | Out-Null
219220
Copy-Item `
@@ -226,6 +227,7 @@ try {
226227
"build",
227228
$StaticPhpExtensions,
228229
"--build-micro",
230+
"--with-upx-pack",
229231
"-P",
230232
(Join-Path $root "build/static-php/register-yiipress-highlighter.php")
231233
)

tests/Unit/Packaging/ConfigurationPackagingTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ public function windowsPackageScriptBuildsPharAndExecutable(): void
229229
self::assertStringContainsString('buildroot/lib', $script);
230230
self::assertStringContainsString('highlighter.lib', $script);
231231
self::assertStringContainsString('$env:RUSTFLAGS = "-C target-feature=+crt-static"', $script);
232+
self::assertStringContainsString('upx', $script);
232233
}
233234

234235
#[Test]
@@ -244,6 +245,7 @@ public function macosPackageScriptBuildsPharAndExecutable(): void
244245
self::assertStringContainsString('aarch64-apple-darwin', $script);
245246
self::assertStringContainsString('x86_64-apple-darwin', $script);
246247
self::assertStringContainsString('micro:combine', $script);
248+
self::assertStringContainsString('wrappe --compression 16', $script);
247249
self::assertStringContainsString('APP_PATH="${WORK_PATH}/app"', $script);
248250
self::assertStringContainsString('pushd "$APP_PATH"', $script);
249251
self::assertStringContainsString('require_command "$command"', $script);

0 commit comments

Comments
 (0)