plugins { id 'base' } tasks.register('frontendLint', Exec) { description = 'Run ESLint in the frontend directory' workingDir = file("${rootProject.projectDir}/frontend") commandLine 'npm', 'run', 'lint' } tasks.register('frontendTest', Exec) { description = 'Run Vitest in the frontend directory' dependsOn frontendLint workingDir = file("${rootProject.projectDir}/frontend") commandLine 'npm', 'run', 'test' } tasks.register('frontendE2E', Exec) { description = 'Run Playwright E2E tests in Docker (CI mode)' workingDir = file("${rootProject.projectDir}/frontend") commandLine 'npm', 'run', 'test:e2e:ci' } tasks.named('check').configure { dependsOn frontendLint, frontendTest } tasks.register('up', Exec) { description = 'Start all services via Docker Compose' workingDir = rootProject.projectDir commandLine 'docker', 'compose', 'up', '-d' } tasks.register('down', Exec) { description = 'Stop all Docker Compose services' workingDir = rootProject.projectDir commandLine 'docker', 'compose', 'down' } tasks.register('reset', Exec) { description = 'Wipe database and restart all services' workingDir = rootProject.projectDir commandLine 'bash', '-c', 'docker compose down -v && docker compose up -d' }