Docs / docs (push) Successful in 20s
Playwright Tests / test-playwright (1, 2) (push) Successful in 3m1s
Playwright Tests / test-playwright (2, 2) (push) Successful in 2m1s
pre-commit / pre-commit (push) Successful in 3m1s
Test Backend / test-backend (3.12) (push) Successful in 4m30s
Test Backend / test-backend (3.14) (push) Successful in 4m18s
Compose Smoke Test / test-compose (push) Successful in 28s
Playwright Tests / merge-reports (push) Successful in 1m17s
62 lines
2.5 KiB
YAML
62 lines
2.5 KiB
YAML
# CI isolation overrides — layered on top of compose.yml + compose.dev.yml by
|
|
# the Playwright shards and the compose smoke job in .gitea/workflows/.
|
|
#
|
|
# A self-hosted runner can put several jobs on the same host. A per-job
|
|
# COMPOSE_PROJECT_NAME keeps their containers, networks and volumes apart, but
|
|
# it does not cover the two things that are global to the Docker daemon:
|
|
#
|
|
# 1. `container_name` ignores the project name, so a second job fails with
|
|
# "the container name /fluksio-db is already in use".
|
|
# 2. Published host ports are first come, first served.
|
|
#
|
|
# Neither is needed in CI: everything reaches everything else by compose
|
|
# service name on the project network.
|
|
services:
|
|
|
|
proxy:
|
|
ports: !reset []
|
|
|
|
db:
|
|
container_name: !reset null
|
|
|
|
redis:
|
|
container_name: !reset null
|
|
|
|
adminer:
|
|
container_name: !reset null
|
|
ports: !reset []
|
|
|
|
mailcatcher:
|
|
ports: !reset []
|
|
|
|
backend:
|
|
container_name: !reset null
|
|
ports: !reset []
|
|
# compose.dev.yml mounts the source over the image's own copy, so `--reload`
|
|
# means something in a detached local stack. Here the daemon is a sibling of
|
|
# the job rather than its host: it resolves that path against its own
|
|
# filesystem, finds nothing, and mounts an empty directory over the package.
|
|
# That is how the container came to report "Path does not exist
|
|
# fluksio/main.py" for a file the image plainly ships. Back to what
|
|
# compose.yml declares — CI wants the built image anyway.
|
|
volumes: !override
|
|
- app-flow-data:/data
|
|
|
|
playwright:
|
|
ports: !reset []
|
|
# Same reason as backend above. These two exist so a local run leaves its
|
|
# report on the host; under a sibling daemon they are empty directories the
|
|
# report is written into and never seen again, which is what "No files were
|
|
# found with the provided path: frontend/blob-report" was. The job copies
|
|
# the report out of the container instead.
|
|
volumes: !reset []
|
|
# frontend/playwright.config.ts defaults baseURL to the test stack's
|
|
# hostname, which resolves to nothing in here. The backend serves the SPA
|
|
# and its API on one origin. Reached as localhost from inside the
|
|
# backend's network namespace, because http://backend:8000 is not a secure
|
|
# context and the clipboard spec needs navigator.clipboard, which only a
|
|
# secure context has. Service names still resolve in there.
|
|
network_mode: service:backend
|
|
environment:
|
|
- PLAYWRIGHT_BASE_URL=http://localhost:8000
|