Commit 69905da
docker: smoke-test the example pipeline in read-only mode
`shapepipe_run -c /app/example/config.ini` succeeds in docker because
the container filesystem is writable, but fails under apptainer/SIF
because OUTPUT_DIR=./example/output resolves under WORKDIR=/app which
is read-only:
ERROR: [Errno 30] Read-only file system: './example/output/shapepipe_runs.txt'
The CI smoke test was passing while the apptainer path silently broke
— same class of gap dc13582 closed for `uv run pytest`, but for the
pipeline entry point.
Fix: a small wrapper `scripts/sh/shapepipe_run_example.sh` that
mktemp's a workdir, copies /app/example into it, cd's, and execs
shapepipe_run. The existing Dockerfile auto-symlink rule makes it
available as `shapepipe_run_example` on $PATH.
The CI step switches to the wrapper and runs it under
`docker run --read-only --tmpfs /tmp:rw`, which emulates SIF
semantics. Any future regression that relies on a writable cwd will
fail here instead of silently breaking apptainer users.
Drive-by: tighten `.gitignore`'s example-output patterns from
`*shapepipe_run_*` (catches anything with that substring, including
this new wrapper) to `example/output/shapepipe_run_*`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 7d1155d commit 69905da
3 files changed
Lines changed: 24 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
70 | 73 | | |
71 | 74 | | |
72 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | | - | |
134 | | - | |
135 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
136 | 136 | | |
| 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 | + | |
0 commit comments