Commit 7b1ff27
committed
Fix two build failures CI caught on the first real run
Neither could fail on this machine: pi needs node >=22.19.0 and this box is below it,
so the loader assertions skip locally and only ran for the first time in CI.
1. A comment broke the build. A JSDoc line reading "the no*/else branches" closed its
own block comment with the */ inside it, turning the rest of the sentence into code:
SyntaxError, Unexpected token 'else'. loader.mjs stopped parsing. The pure tests do
not import it, so nothing local noticed.
Added test/sources-parse.test.mjs: node --check over every runner source. It needs no
dependencies and no particular node version, so unlike the loader assertions it runs
everywhere -- including here, where the tests that would have caught this cannot.
Verified by reintroducing the bug and watching it fail.
2. `npm i -g` does not make a package importable. The runner did
`import "@earendil-works/pi-coding-agent"` while the Dockerfile installed it globally;
node's ESM resolver walks node_modules upward from the importing file and ignores the
global prefix entirely. NODE_PATH does not help either -- it is CommonJS-only. The
image built fine and every job would have died on module-not-found.
Now a local `npm ci --omit=dev` from the lockfile at /app, with /app/node_modules/.bin
on PATH so the pi and playwright-cli binaries come from that same install -- one pin,
no chance of the CLI drifting from the imported library. @playwright/cli moves into the
runner's dependencies for the same reason, which also pins playwright transitively
rather than resolving it at build time via npx.
Both are the kind of thing only a real build finds, which is the argument for the image
existing before the worker rather than after it.1 parent 1a0fc0d commit 7b1ff27
6 files changed
Lines changed: 136 additions & 17 deletions
File tree
- image
- runner
- src
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
45 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
53 | 65 | | |
54 | 66 | | |
55 | 67 | | |
56 | 68 | | |
57 | | - | |
| 69 | + | |
| 70 | + | |
58 | 71 | | |
59 | | - | |
| 72 | + | |
60 | 73 | | |
61 | 74 | | |
62 | 75 | | |
| |||
71 | 84 | | |
72 | 85 | | |
73 | 86 | | |
74 | | - | |
| 87 | + | |
| 88 | + | |
75 | 89 | | |
76 | 90 | | |
77 | 91 | | |
78 | 92 | | |
79 | 93 | | |
80 | 94 | | |
81 | 95 | | |
82 | | - | |
| 96 | + | |
| 97 | + | |
83 | 98 | | |
84 | 99 | | |
85 | 100 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments