Replaces the manual robocopy / install-windows.ps1 flow with two real distributable artifacts: - dragonflight-premiere-panel-<version>.zxp (Mac + Win) - dragonflight-premiere-panel-<version>-windows-setup.exe (Win) The Windows installer copies the bundle to %APPDATA%\Adobe\CEP\extensions, sets PlayerDebugMode=1 for CSXS 8..13, registers an uninstaller, and offers to remove any legacy com.wilddragon.mam.panel folder so editors don't end up with duplicate panels. The .zxp is signed with a self-signed cert generated on first build and committed to build/cert/ so signature continuity is preserved across builds (Adobe rejects ZXP upgrades with a different cert fingerprint). Also migrates the CEP bundle ID from com.wilddragon.mam.panel to net.wilddragon.dragonflight.panel to match the wild-dragon -> dragonflight repo rename. Manifest, .debug, CSInterface.js, install docs, and the growing-files quickstart all updated. build/ is normally swept by the root .gitignore; added an explicit negation so the packaging pipeline stays tracked. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 lines
1.6 KiB
PowerShell
46 lines
1.6 KiB
PowerShell
# Dragonflight Premiere panel — Windows installer build
|
|
#
|
|
# Parses the version from ../CSXS/manifest.xml and hands it to ISCC.exe.
|
|
# Requires Inno Setup 6 on PATH (winget install JRSoftware.InnoSetup).
|
|
#
|
|
# Usage: pwsh -File build-installer.ps1
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
Set-Location $PSScriptRoot
|
|
|
|
$manifestPath = Join-Path $PSScriptRoot '..\CSXS\manifest.xml'
|
|
if (-not (Test-Path $manifestPath)) {
|
|
throw "Manifest not found at $manifestPath"
|
|
}
|
|
$manifestXml = [xml](Get-Content -Raw -Path $manifestPath)
|
|
$version = $manifestXml.ExtensionManifest.ExtensionBundleVersion
|
|
if (-not $version) {
|
|
throw 'Could not read <ExtensionBundleVersion> from manifest.xml'
|
|
}
|
|
Write-Host "Dragonflight Premiere panel - Windows installer build v$version"
|
|
|
|
$iscc = Get-Command 'ISCC.exe' -ErrorAction SilentlyContinue
|
|
if (-not $iscc) {
|
|
# Common install location if not on PATH.
|
|
$fallback = "${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe"
|
|
if (Test-Path $fallback) {
|
|
$iscc = Get-Command $fallback
|
|
} else {
|
|
throw "ISCC.exe not found. Install Inno Setup 6: winget install JRSoftware.InnoSetup"
|
|
}
|
|
}
|
|
|
|
$distDir = Join-Path $PSScriptRoot 'dist'
|
|
New-Item -ItemType Directory -Force -Path $distDir | Out-Null
|
|
|
|
& $iscc.Source "/DMyAppVersion=$version" "installer.iss"
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "ISCC failed with exit code $LASTEXITCODE"
|
|
}
|
|
|
|
$output = Join-Path $distDir "dragonflight-premiere-panel-$version-windows-setup.exe"
|
|
if (-not (Test-Path $output)) {
|
|
throw "Expected output not found: $output"
|
|
}
|
|
$size = [math]::Round((Get-Item $output).Length / 1KB, 1)
|
|
Write-Host "Built $output ($size KB)"
|