Runner: host-directory job workspace (bind_workdir) so the e2e compose stack can bind-mount the checkout
Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
@@ -11,15 +11,18 @@ the `spencerm` user through the Docker socket. No sudo is needed.
|
||||
(Ubuntu 24.04 with git, node, python 3.12, docker and compose).
|
||||
- Every job of ci.yml runs in a fresh job container from that image. The server job's PostgreSQL service
|
||||
container and the e2e job's compose stack (postgres, migrate, app, worker, the Samba DC, Playwright) are
|
||||
started through the runner's Docker proxy on docker-1's daemon. The proxy maps the job workspace so the
|
||||
compose bind mounts (`deploy/postgres/initdb`, `tests/e2e`, the CI secrets) resolve, and it removes what
|
||||
the job started when the job ends.
|
||||
started on docker-1's daemon through the socket. The job workspace is a host directory
|
||||
(`~/gitea/runner/work/<task>/spencerm/PacketStation`, `container.bind_workdir`) mounted into the job
|
||||
container at that same path, so the compose bind mounts (`deploy/postgres/initdb`, `tests/e2e`, the CI
|
||||
secrets) resolve on the host. A Docker-volume workspace does not work here: the first run failed with
|
||||
"bind source path does not exist". The runner removes what the job started when the job ends; the
|
||||
workflow also runs `down -v` itself.
|
||||
- Capacity 2: server and frontend run at the same time; e2e waits for both.
|
||||
|
||||
## Install (once)
|
||||
|
||||
```bash
|
||||
mkdir -p ~/gitea/runner/data
|
||||
mkdir -p ~/gitea/runner/data ~/gitea/runner/work
|
||||
cp deploy/runner/compose.yaml ~/gitea/runner/
|
||||
cp deploy/runner/config.yaml ~/gitea/runner/data/
|
||||
cd ~/gitea/runner
|
||||
|
||||
Reference in New Issue
Block a user