@@ -183,16 +183,33 @@ jobs:
183183 Write-Host "R-Portable total size: ${sizeMB} MB"
184184
185185 # ── 7. npm install ───────────────────────────────────────────────────────
186+ # Always run (even on cache hit) to ensure dependency tree is valid.
187+ # --prefer-offline makes this fast when node_modules is already cached.
186188 - name : Install npm dependencies
187- if : steps.cache-node.outputs.cache-hit != 'true'
188- run : npm install
189+ run : npm install --prefer-offline
189190
190191 # ── 8. Build electron app ────────────────────────────────────────────────
191192 - name : Build StreamFLOW installer
192193 run : npm run build
193194 env :
194195 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
195196
197+ # ── 8a. Debug: show asar contents ─────────────────────────────────────
198+ - name : Debug – list asar contents
199+ if : always()
200+ shell : pwsh
201+ run : |
202+ $asar = "dist/win-unpacked/resources/app.asar"
203+ $cli = "node_modules/.bin/asar.cmd"
204+ if ((Test-Path $asar) -and (Test-Path $cli)) {
205+ Write-Host "=== app.asar contents ==="
206+ & $cli list $asar
207+ } else {
208+ Write-Host "app.asar or asar CLI not found; skipping"
209+ Write-Host " asar exists: $(Test-Path $asar)"
210+ Write-Host " cli exists: $(Test-Path $cli)"
211+ }
212+
196213 # ── 8b. Verify packaged payload ─────────────────────────────────────────
197214 # Runs BEFORE artifact upload / release so a broken installer (missing
198215 # R-Portable, CytoExploreR, shiny, or app files) can never be published.
0 commit comments