mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-05-07 20:32:26 +00:00
fc524625c2
* add playwright setup and tests for auth, profile and organization settings * add playwright github action * add sqlite database * fix playwright base url * add mailpit and parallelization * remove additional waitForUrl in fixture * fix tests * remove waitforurl in tests * change playwright github action to only one worker * try promiso all to avoid loading errors * change environment to include http protocol * convert back to simpler structure * add caching of playwright browser binaries * test if playwright in ci works faster with multiple workers * change back to one worker * remove browser binary caching * try using playwright container to speedup browser setup * rollback image changes * add playwright gitignore changes --------- Co-authored-by: Gregor Vostrak <gregorvostrak@Gregors-MacBook-Pro.local>
94 lines
3.4 KiB
YAML
94 lines
3.4 KiB
YAML
services:
|
|
laravel.test:
|
|
build:
|
|
context: ./vendor/laravel/sail/runtimes/8.3
|
|
dockerfile: Dockerfile
|
|
args:
|
|
WWWGROUP: '${WWWGROUP}'
|
|
image: sail-8.3/app
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=${NETWORK_NAME}"
|
|
- "traefik.http.routers.timetracking.rule=Host(`${NGINX_HOST_NAME}`)"
|
|
- "traefik.http.routers.timetracking.entrypoints=web"
|
|
- "traefik.http.services.timetracking.loadbalancer.server.port=80"
|
|
- "traefik.http.routers.timetracking-https.rule=Host(`${NGINX_HOST_NAME}`)"
|
|
- "traefik.http.routers.timetracking-https.entrypoints=websecure"
|
|
- "traefik.http.routers.timetracking-https.tls=true"
|
|
extra_hosts:
|
|
- 'host.docker.internal:host-gateway'
|
|
ports:
|
|
- '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
|
|
environment:
|
|
WWWUSER: '${WWWUSER}'
|
|
LARAVEL_SAIL: 1
|
|
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
|
|
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
|
|
IGNITION_LOCAL_SITES_PATH: '${PWD}'
|
|
volumes:
|
|
- '.:/var/www/html'
|
|
networks:
|
|
- sail
|
|
- reverse-proxy
|
|
depends_on:
|
|
- pgsql
|
|
pgsql:
|
|
image: 'postgres:15'
|
|
ports:
|
|
- '${FORWARD_DB_PORT:-5432}:5432'
|
|
environment:
|
|
PGPASSWORD: '${DB_PASSWORD:-secret}'
|
|
POSTGRES_DB: '${DB_DATABASE}'
|
|
POSTGRES_USER: '${DB_USERNAME}'
|
|
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
|
|
volumes:
|
|
- 'sail-pgsql:/var/lib/postgresql/data'
|
|
- './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
|
|
networks:
|
|
- sail
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- pg_isready
|
|
- '-q'
|
|
- '-d'
|
|
- '${DB_DATABASE}'
|
|
- '-U'
|
|
- '${DB_USERNAME}'
|
|
retries: 3
|
|
timeout: 5s
|
|
mailpit:
|
|
image: 'axllent/mailpit:latest'
|
|
ports:
|
|
- '${FORWARD_MAILPIT_PORT:-1025}:1025'
|
|
- '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
|
|
networks:
|
|
- sail
|
|
playwright:
|
|
image: mcr.microsoft.com/playwright:v1.41.1-jammy
|
|
command: ['npx', 'playwright', 'test', '--ui-port=8080', '--ui-host=0.0.0.0']
|
|
working_dir: /src
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=${NETWORK_NAME}"
|
|
- "traefik.http.routers.playwright.rule=Host(`playwright.${NGINX_HOST_NAME}`)"
|
|
- "traefik.http.routers.playwright.entrypoints=web"
|
|
- "traefik.http.services.playwright.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.playwright-https.rule=Host(`playwright.${NGINX_HOST_NAME}`)"
|
|
- "traefik.http.routers.playwright-https.entrypoints=websecure"
|
|
- "traefik.http.routers.playwright-https.tls=true"
|
|
networks:
|
|
- sail
|
|
- reverse-proxy
|
|
volumes:
|
|
- '.:/src'
|
|
networks:
|
|
reverse-proxy:
|
|
name: "${NETWORK_NAME}"
|
|
external: true
|
|
sail:
|
|
driver: bridge
|
|
volumes:
|
|
sail-pgsql:
|
|
driver: local
|