87 lines
3.1 KiB
Markdown
87 lines
3.1 KiB
Markdown
|
|
# Premiere panel installer — build pipeline
|
||
|
|
|
||
|
|
Produces two artifacts from `services/premiere-plugin/`:
|
||
|
|
|
||
|
|
| File | Platform | How an editor installs it |
|
||
|
|
|------|----------|----------------------------|
|
||
|
|
| `dist/dragonflight-premiere-panel-<version>.zxp` | macOS + Windows | Drag into [Anastasiy's ZXP Installer](https://install.anastasiy.com/) |
|
||
|
|
| `dist/dragonflight-premiere-panel-<version>-windows-setup.exe` | Windows | Double-click, Next → Finish |
|
||
|
|
|
||
|
|
The version is read from `CSXS/manifest.xml`'s `<ExtensionBundleVersion>`. To
|
||
|
|
cut a new release: bump that one number, rebuild, attach the two files to a
|
||
|
|
Forgejo release tag.
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
| Building | Requires |
|
||
|
|
|----------|----------|
|
||
|
|
| `.zxp` only | Node 18+, runs on macOS / Linux / Windows |
|
||
|
|
| `.exe` | Windows + [Inno Setup 6](https://jrsoftware.org/isinfo.php) on `PATH` (`ISCC.exe`) |
|
||
|
|
| Both via `build-all.ps1` | Windows + Node 18+ + Inno Setup 6 |
|
||
|
|
|
||
|
|
Install Inno Setup with winget:
|
||
|
|
|
||
|
|
```
|
||
|
|
winget install --id JRSoftware.InnoSetup
|
||
|
|
```
|
||
|
|
|
||
|
|
## Build
|
||
|
|
|
||
|
|
```
|
||
|
|
cd services/premiere-plugin/build
|
||
|
|
npm install
|
||
|
|
pwsh -File build-all.ps1
|
||
|
|
```
|
||
|
|
|
||
|
|
Artifacts land in `services/premiere-plugin/build/dist/`.
|
||
|
|
|
||
|
|
To build just one:
|
||
|
|
|
||
|
|
```
|
||
|
|
node build-zxp.mjs # cross-platform .zxp
|
||
|
|
pwsh -File build-installer.ps1 # Windows .exe (needs ISCC.exe)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Signing cert (.zxp)
|
||
|
|
|
||
|
|
The first `node build-zxp.mjs` run generates a self-signed cert at
|
||
|
|
`cert/dragonflight-selfsigned.p12` + passphrase at `cert/cert-passphrase.txt`.
|
||
|
|
**Commit both files** — they need to be stable across builds so Adobe accepts
|
||
|
|
ZXP upgrades in place. If you regenerate the cert, every editor who already
|
||
|
|
installed an older `.zxp` has to uninstall + reinstall.
|
||
|
|
|
||
|
|
The cert is self-signed → editors still need `PlayerDebugMode=1`. The Windows
|
||
|
|
`.exe` installer sets this automatically. ZXP installs on macOS need a manual
|
||
|
|
`defaults write com.adobe.CSXS.11 PlayerDebugMode 1`.
|
||
|
|
|
||
|
|
See `cert/README.md` for cert details + how to regenerate.
|
||
|
|
|
||
|
|
## What the installers do
|
||
|
|
|
||
|
|
Both install the bundle as `net.wilddragon.dragonflight.panel`. The Windows
|
||
|
|
`.exe` additionally:
|
||
|
|
|
||
|
|
1. Removes any legacy `com.wilddragon.mam.panel` folder (with a consent
|
||
|
|
checkbox, default on) — avoids editors seeing two panels in
|
||
|
|
**Window → Extensions**.
|
||
|
|
2. Sets `HKCU\Software\Adobe\CSXS.{8..13}\PlayerDebugMode = "1"` so unsigned
|
||
|
|
CEP extensions load.
|
||
|
|
3. Registers itself in Add/Remove Programs so uninstall reverses both.
|
||
|
|
|
||
|
|
## Layout
|
||
|
|
|
||
|
|
```
|
||
|
|
build/
|
||
|
|
├── README.md ← this file
|
||
|
|
├── package.json ← devDep: zxp-sign-cmd
|
||
|
|
├── .gitignore ← ignores dist/ + node_modules/
|
||
|
|
├── build-all.ps1 ← runs both builders
|
||
|
|
├── build-zxp.mjs ← Node: generates cert (first run), signs, packages
|
||
|
|
├── build-installer.ps1 ← wraps ISCC.exe with version + bundle-id flags
|
||
|
|
├── installer.iss ← Inno Setup script
|
||
|
|
└── cert/
|
||
|
|
├── README.md ← how to regenerate
|
||
|
|
├── dragonflight-selfsigned.p12 ← generated on first build (commit it)
|
||
|
|
└── cert-passphrase.txt ← generated on first build (commit it)
|
||
|
|
```
|