gradle-node-plugin
                                
                                
                                
                                    gradle-node-plugin copied to clipboard
                            
                            
                            
                        Yarn build on BitBucket
I have a build pipeline setup on BitBucket.
Locally (Windows 10) the build passes with no problems. But on the bitbucket pipeline I get this exeption:
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
:frontend:buildFe FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':frontend:buildFe'.
> Process 'command '/opt/atlassian/pipelines/agent/build/frontend/extDeps/yarn/yarn-v1.1.0/bin/yarn'' finished with non-zero exit value 1
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':frontend:buildFe'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
6 actionable tasks: 6 executed
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/opt/atlassian/pipelines/agent/build/frontend/extDeps/yarn/yarn-v1.1.0/bin/yarn'' finished with non-zero exit value 1
	at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:382)
	at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:31)
	at org.gradle.api.internal.file.DefaultFileOperations.exec(DefaultFileOperations.java:188)
	at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1076)
	at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1071)
	at org.gradle.api.Project$exec$3.call(Unknown Source)
	at com.moowork.gradle.node.exec.ExecRunner.run(ExecRunner.groovy:37)
	at com.moowork.gradle.node.yarn.YarnExecRunner.doExecute(YarnExecRunner.groovy:42)
	at com.moowork.gradle.node.exec.ExecRunner.execute(ExecRunner.groovy:63)
	at com.moowork.gradle.node.exec.ExecRunner$execute.call(Unknown Source)
	at com.moowork.gradle.node.yarn.YarnTask.exec(YarnTask.groovy:89)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:142)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:135)
	at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:122)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:762)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:729)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
	... 28 more
bitbucket-pipeline.yml
image: java:8
pipelines:
  default:
    - step:
        caches:
          - gradle
        script: # Modify the commands below to build your repository.
          # You must commit the Gradle wrapper to your repository
          # https://docs.gradle.org/current/userguide/gradle_wrapper.html
          - bash ./gradlew build --debug
The build.gradle file is:
plugins {
  id "com.moowork.node" version "1.2.0"
}
node {
  // Version of node to use.
  version = '6.11.4'
  // Version of npm to use.
  npmVersion = '3.10.10'
  // Version of Yarn to use.
  yarnVersion = '1.1.0'
  // Base URL for fetching node distributions (change if you have a mirror).
  distBaseUrl = 'https://nodejs.org/dist'
  // If true, it will download node using above parameters.
  // If false, it will try to use globally installed node.
  download = true
  // Set the work directory for unpacking node
  workDir = file("${project.projectDir}/extDeps/nodejs")
  // Set the work directory for NPM
  npmWorkDir = file("${project.projectDir}/extDeps/npm")
  // Set the work directory for Yarn
  yarnWorkDir = file("${project.projectDir}/extDeps/yarn")
  // Set the work directory where node_modules should be located
  nodeModulesDir = file("${project.projectDir}")
}
task installDeps(type: YarnTask) {
  args = ['install']
}
task coverageTest(dependsOn: ['installDeps'],type: YarnTask) {
  args = ['test']
}
task buildFe(dependsOn: ['installDeps', 'coverageTest'],type: YarnTask) {
	args = ['build']
}
task cleanWebApp(dependsOn: ['installDeps', 'coverageTest', 'buildFe'], type: Delete){
	delete '../backend/webapp'
	doLast {
		println 'Finished deleteing backend/webapp'
	}
}
task build(dependsOn: ['installDeps', 'coverageTest', 'buildFe', 'cleanWebApp'], type: Copy) {
    from('build')
    into('../backend/webapp')
	doLast {
		println 'Copying prodocution ready frontend to backend/webapp'
	}
}
Any ideas where the problem might be ?
The error seems to be coming from these two files: ExecRunner.groovy and YarnExecRunner.groovy
@AleksandarAleksandrov did you ever sort this out? If so, would love to know what approach you took!
I got this error this morning but in actuality our npm auth token had expired. Not sure if npm or the plugin needs better error messages