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', () => {