@@ -2,6 +2,7 @@ name: drq-eperm-repro
22on :
33 push :
44 branches : [drenderq/eperm-repro]
5+
56jobs :
67 repro :
78 runs-on : windows-latest
4041 hyperframes browser ensure 2>&1 | Select-Object -Last 12
4142 "exit=$LASTEXITCODE"
4243 Receive-Job -Job $holder -Wait
44+ fixed :
45+ runs-on : windows-latest
46+ timeout-minutes : 40
47+ steps :
48+ - uses : actions/checkout@v4
49+ with :
50+ ref : drenderq/browser-install-lock-retry
51+ - uses : oven-sh/setup-bun@v2
52+ - uses : actions/setup-node@v4
53+ with :
54+ node-version : 22
55+ - name : build the fixed CLI
56+ shell : pwsh
57+ run : |
58+ bun install 2>&1 | Select-Object -Last 2
59+ bun run --filter '@hyperframes/{parsers,lint,studio-server}' build 2>&1 | Select-Object -Last 2
60+ bun run --filter '@hyperframes/core' build 2>&1 | Select-Object -Last 2
61+ - name : held file at unzip, fixed CLI
62+ shell : pwsh
63+ run : |
64+ $root = Join-Path $env:USERPROFILE ".cache\hyperframes"
65+ $holder = Start-Job -ArgumentList $root -ScriptBlock {
66+ param($root)
67+ $end = (Get-Date).AddSeconds(240)
68+ while ((Get-Date) -lt $end) {
69+ $f = Get-ChildItem -Path $root -Recurse -Filter chrome-headless-shell.exe -ErrorAction SilentlyContinue | Where-Object { $_.FullName -like '*chrome-staging*' } | Select-Object -First 1
70+ if ($f) {
71+ try { $s = [IO.File]::Open($f.FullName, 'Open', 'Read', 'ReadWrite'); Start-Sleep -Seconds 3; $s.Close(); return "held 3s" } catch { Start-Sleep -Milliseconds 5 }
72+ } else { Start-Sleep -Milliseconds 5 }
73+ }
74+ return "never saw the exe"
75+ }
76+ bun packages/cli/src/cli.ts browser ensure 2>&1 | Select-Object -Last 12
77+ "exit=$LASTEXITCODE"
78+ Receive-Job -Job $holder -Wait
0 commit comments