diff --git a/build-plugins/src/main/groovy/com/cloudogu/scm/IntegrationTestPlugin.groovy b/build-plugins/src/main/groovy/com/cloudogu/scm/IntegrationTestPlugin.groovy index 611e2e2311..f15fedf9cd 100644 --- a/build-plugins/src/main/groovy/com/cloudogu/scm/IntegrationTestPlugin.groovy +++ b/build-plugins/src/main/groovy/com/cloudogu/scm/IntegrationTestPlugin.groovy @@ -18,10 +18,13 @@ package com.cloudogu.scm import org.gradle.api.Plugin import org.gradle.api.Project +import com.moowork.gradle.node.NodeExtension class IntegrationTestPlugin implements Plugin { void apply(Project project) { + project.plugins.apply("com.github.node-gradle.node") + def extension = project.extensions.create("scmServer", ScmServerExtension, project) project.tasks.register('write-server-config', WriteServerConfigTask) { @@ -32,8 +35,11 @@ class IntegrationTestPlugin implements Plugin { it.extension = extension } + def nodeExt = NodeExtension.get(project) + project.tasks.register("startScmServer", RunTask) { it.extension = extension + it.nodeExtension = nodeExt it.waitForCompletion = false it.frontend = false it.configFileDirectory = './src/main/resources' diff --git a/build-plugins/src/main/groovy/com/cloudogu/scm/RunPlugin.groovy b/build-plugins/src/main/groovy/com/cloudogu/scm/RunPlugin.groovy index 6f69e88503..143fab5419 100644 --- a/build-plugins/src/main/groovy/com/cloudogu/scm/RunPlugin.groovy +++ b/build-plugins/src/main/groovy/com/cloudogu/scm/RunPlugin.groovy @@ -49,6 +49,7 @@ class RunPlugin implements Plugin { } project.tasks.register("run", RunTask) { it.extension = extension + it.nodeExtension = nodeExt dependsOn 'write-server-config', 'prepare-home', 'yarnSetup' } } diff --git a/build-plugins/src/main/groovy/com/cloudogu/scm/RunTask.groovy b/build-plugins/src/main/groovy/com/cloudogu/scm/RunTask.groovy index 46a28767d3..8c37b6651c 100644 --- a/build-plugins/src/main/groovy/com/cloudogu/scm/RunTask.groovy +++ b/build-plugins/src/main/groovy/com/cloudogu/scm/RunTask.groovy @@ -17,6 +17,7 @@ package com.cloudogu.scm import com.moowork.gradle.node.task.NodeTask +import com.moowork.gradle.node.NodeExtension import org.gradle.api.DefaultTask import org.gradle.api.GradleException import org.gradle.api.artifacts.Configuration @@ -33,6 +34,9 @@ class RunTask extends DefaultTask { @Input boolean waitForCompletion = true + @Input + NodeExtension nodeExtension + @Nested ScmServerExtension extension @@ -56,6 +60,7 @@ class RunTask extends DefaultTask { @Option(option = 'configFileDirectory', description = 'Path to config file') String configFileDirectory = '' + @TaskAction void exec() { List> actions = new ArrayList<>() @@ -146,10 +151,15 @@ class RunTask extends DefaultTask { } private Closure createFrontend() { + def yarnBinDir = nodeExtension.variant.yarnBinDir.getAbsolutePath() + def nodeBinDir = nodeExtension.variant.nodeBinDir.getAbsolutePath() + def path = yarnBinDir + File.pathSeparator + nodeBinDir + File.separator + System.getenv().get("PATH"); + def frontend = project.tasks.create('boot-frontend', NodeTask) { script = new File(project.rootProject.projectDir, 'scripts/turbo-runner.js') args = ['run', 'serve', '--filter=@scm-manager/ui-webapp'] environment = [ + 'PATH': path, 'NODE_ENV': 'development', 'ANALYZE_BUNDLES': analyzeBundles ]