Move gradlew, gradle/wrapper, and settings.gradle from backend/ to the repo root so build commands run from the top-level directory. This follows the standard multi-project Gradle layout where the build tool lives alongside docker-compose.yml and all submodules. - Move gradlew + gradle/wrapper/* from backend/ to repo root - Move settings.gradle to root with rootProject.name and include 'backend' - Create root build.gradle with convenience tasks: check, up, down, reset - check task chains frontend lint → frontend test → backend check - Update docker-compose.yml backend volume from ./backend:/app to .:/app - Update backend.Dockerfile entrypoint to ./gradlew :backend:bootRun - Update AGENTS.md: document ./gradlew check, up, down, reset - Delete backend/settings.gradle (now at root) - Add .gradle/ and build/ to .gitignore - Add !gradle/wrapper/gradle-wrapper.jar exception (blocked by *.jar rule) All 38 frontend tests and 33 backend tests pass via ./gradlew check.
38 lines
1.1 KiB
Groovy
38 lines
1.1 KiB
Groovy
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.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'
|
|
}
|