From b3f5e8242a0c47cd45d6a2f3307635dcb6845e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com> Date: Wed, 19 Aug 2026 04:55:53 +0800 Subject: [PATCH] fix: resolve release app bundle root --- .../hololake-native-desktop/scripts/release-pipeline.mjs | 2 +- .../hololake-native-desktop/scripts/release-pipeline.test.mjs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/product-source/hololake-native-desktop/scripts/release-pipeline.mjs b/product-source/hololake-native-desktop/scripts/release-pipeline.mjs index 7a9b8ac89..1a6be7a61 100644 --- a/product-source/hololake-native-desktop/scripts/release-pipeline.mjs +++ b/product-source/hololake-native-desktop/scripts/release-pipeline.mjs @@ -435,7 +435,7 @@ export async function main(argv = process.argv.slice(2)) { const bundleRoot = path.join(root, 'src-tauri/target/release/bundle') const appExecutable = findOne(path.join(bundleRoot, 'macos'), (file) => file.endsWith('/Contents/MacOS/hololake-native-desktop'), 'HOLOLAKE_RELEASE_PIPELINE_APP_NOT_UNIQUE') - const application = path.resolve(appExecutable, '../../../..') + const application = path.resolve(appExecutable, '../../..') const dmg = findOne(path.join(bundleRoot, 'dmg'), (file) => file.endsWith('.dmg'), 'HOLOLAKE_RELEASE_PIPELINE_DMG_NOT_UNIQUE') const updater = findOne(bundleRoot, (file) => file.endsWith('.app.tar.gz'), 'HOLOLAKE_RELEASE_PIPELINE_UPDATER_NOT_UNIQUE') const updaterSignature = `${updater}.sig` diff --git a/product-source/hololake-native-desktop/scripts/release-pipeline.test.mjs b/product-source/hololake-native-desktop/scripts/release-pipeline.test.mjs index 0ae839dc0..1723eb6dd 100644 --- a/product-source/hololake-native-desktop/scripts/release-pipeline.test.mjs +++ b/product-source/hololake-native-desktop/scripts/release-pipeline.test.mjs @@ -107,6 +107,8 @@ test('release pipeline verifies the updater signature against embedded product t assert.match(source, /HoloLakeExecutableSha256/) assert.match(source, /NOTARIZED_APP_SOURCE_BINARY_MISMATCH/) assert.match(source, /APPLE_APP_NOTARIZATION_ACCEPTED_AND_STAPLED_DMG_CONTAINS_NOTARIZED_APP/) + assert.match(source, /path\.resolve\(appExecutable, '\.\.\/\.\.\/\.\.'\)/) + assert.doesNotMatch(source, /path\.resolve\(appExecutable, '\.\.\/\.\.\/\.\.\/\.\.'\)/) }) test('Windows updater keeps signed installation but never claims the macOS rollback boundary', () => {