57 lines
1.7 KiB
Groovy
57 lines
1.7 KiB
Groovy
plugins {
|
|
id 'base'
|
|
id "com.github.node-gradle.node" version "7.1.0"
|
|
}
|
|
|
|
group 'top.nxxy335.commentaiautopilot.ui'
|
|
|
|
// Use system pnpm directly — avoids Windows exit code 268435659
|
|
// caused by Gradle Worker Daemon / node-gradle downloading pnpm on Windows
|
|
node {
|
|
download = false
|
|
}
|
|
|
|
// Skip built-in pnpm tasks (they fail on Windows), replace with Exec-based tasks
|
|
tasks.named('pnpmSetup').configure { enabled = false }
|
|
tasks.named('pnpmInstall').configure { enabled = false }
|
|
|
|
// Cross-platform: use 'cmd /c' on Windows, direct 'pnpm' on Linux/macOS
|
|
def isWindows = System.properties['os.name'].toLowerCase().contains('windows')
|
|
def pnpmCmd = isWindows ? ['cmd', '/c', 'pnpm'] : ['pnpm']
|
|
|
|
tasks.register('uiInstall', Exec) {
|
|
group = 'build'
|
|
description = 'Install UI dependencies using system pnpm'
|
|
workingDir layout.projectDirectory
|
|
commandLine(pnpmCmd + ['install'])
|
|
}
|
|
|
|
tasks.register('uiBuild', Exec) {
|
|
group = 'build'
|
|
description = 'Build the UI project using pnpm'
|
|
workingDir layout.projectDirectory
|
|
commandLine(pnpmCmd + ['run', 'build'])
|
|
dependsOn uiInstall
|
|
inputs.dir(layout.projectDirectory.dir('src'))
|
|
inputs.files(fileTree(
|
|
dir: layout.projectDirectory,
|
|
includes: ['*.cjs', '*.ts', '*.js', '*.json', '*.yaml']))
|
|
outputs.dir(layout.buildDirectory.dir('dist'))
|
|
}
|
|
|
|
tasks.register('uiCheck', Exec) {
|
|
group = 'verification'
|
|
description = 'Run unit tests for the UI project using pnpm'
|
|
workingDir layout.projectDirectory
|
|
commandLine(pnpmCmd + ['run', 'test:unit'])
|
|
dependsOn uiInstall
|
|
}
|
|
|
|
tasks.named('check') {
|
|
dependsOn tasks.named('uiCheck')
|
|
}
|
|
|
|
tasks.named('assemble') {
|
|
dependsOn tasks.named('uiBuild')
|
|
}
|