Skip to content

Commit 90c81be

Browse files
committed
ci(experiment): add diagnostics to screenshot step; run as node
1 parent 1e7e64e commit 90c81be

1 file changed

Lines changed: 28 additions & 12 deletions

File tree

.github/workflows/experiment-devcontainer-proof.yml

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,33 +116,49 @@ jobs:
116116
docker exec "$C" tail -200 /tmp/entrypoint.log || true
117117
exit 1
118118
119-
- name: Screenshot 1 — initial paint
119+
- name: Display + tooling sanity check
120120
run: |
121121
C=${{ steps.container.outputs.id }}
122-
docker exec "$C" bash -c 'DISPLAY=:99 import -window root /tmp/shot1.png'
123-
docker cp "$C:/tmp/shot1.png" ./shot1.png
124-
ls -la ./shot1.png
122+
echo '--- which import / xdotool / xwininfo ---'
123+
docker exec "$C" bash -c 'which import xdotool xwininfo xdpyinfo 2>&1 || true'
124+
echo '--- xdpyinfo (X server reachable on :99?) ---'
125+
docker exec -u node "$C" bash -c 'DISPLAY=:99 xdpyinfo 2>&1 | head -10' || echo "xdpyinfo failed exit=$?"
126+
echo '--- xwininfo -root -tree ---'
127+
docker exec -u node "$C" bash -c 'DISPLAY=:99 xwininfo -root -tree 2>&1' || true
128+
echo '--- xdotool search --name ToolHive ---'
129+
docker exec -u node "$C" bash -c 'DISPLAY=:99 xdotool search --name ToolHive 2>&1' || true
125130
126-
- name: Inspect window tree (sanity check)
131+
- name: Screenshot 1 — initial paint
127132
run: |
133+
set -x
128134
C=${{ steps.container.outputs.id }}
129-
echo '--- xwininfo -root -tree ---'
130-
docker exec "$C" bash -c 'DISPLAY=:99 xwininfo -root -tree' || true
131-
echo '--- xdotool search --name ToolHive ---'
132-
docker exec "$C" bash -c 'DISPLAY=:99 xdotool search --name ToolHive' || true
135+
# Run as `node` to match the X server owner. Capture stderr explicitly
136+
# so we can see *why* import fails if it does, instead of inferring.
137+
docker exec -u node "$C" bash -c '
138+
set -x
139+
DISPLAY=:99 import -window root /tmp/shot1.png 2>&1
140+
echo "import exit=$?"
141+
ls -la /tmp/shot1.png 2>&1
142+
'
143+
docker cp "$C:/tmp/shot1.png" ./shot1.png
144+
ls -la ./shot1.png
133145
134146
- name: Drive xdotool — focus app and send Tab
135147
run: |
136148
C=${{ steps.container.outputs.id }}
137-
docker exec "$C" bash -c 'DISPLAY=:99 xdotool search --name ToolHive windowactivate' || true
149+
docker exec -u node "$C" bash -c 'DISPLAY=:99 xdotool search --name ToolHive windowactivate' || true
138150
sleep 2
139-
docker exec "$C" bash -c 'DISPLAY=:99 xdotool key Tab' || true
151+
docker exec -u node "$C" bash -c 'DISPLAY=:99 xdotool key Tab' || true
140152
sleep 1
141153
142154
- name: Screenshot 2 — after input
143155
run: |
144156
C=${{ steps.container.outputs.id }}
145-
docker exec "$C" bash -c 'DISPLAY=:99 import -window root /tmp/shot2.png'
157+
docker exec -u node "$C" bash -c '
158+
DISPLAY=:99 import -window root /tmp/shot2.png 2>&1
159+
echo "import exit=$?"
160+
ls -la /tmp/shot2.png 2>&1
161+
'
146162
docker cp "$C:/tmp/shot2.png" ./shot2.png
147163
ls -la ./shot2.png
148164

0 commit comments

Comments
 (0)