Question

I have the following pre-build script:

# install nodejs, if using cloudbees
curl -s -o use-node https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/node/use-node
NODE_VERSION=0.11.1 source ./use-node

# install phantomjs, karma
npm cache clean
[ -d node_modules/phantomjs ] || npm install -g phantomjs
[ -d node_modules/karma ] || npm install -g karma
[ -d node_modules/karma-junit-reporter ] || npm install -g karma-junit-reporter
[ -d node_modules/karma-phantomjs-launcher ] || npm install -g  karma-phantomjs-launcher

test -d $HOME/bin  || mkdir $HOME/bin
test -L $HOME/bin/karma  || ln -s /scratch/jenkins/addons/node/$node_name/bin/karma $HOME/bin/karma
test -L $HOME/bin/node  || ln -s /scratch/jenkins/addons/node/$node_name/bin/node $HOME/bin/node

The above script fails with the following error message:

Started by user Balteo Balteo
Building remotely on s-b13180e5 in workspace /scratch/jenkins/workspace/bignibou-unit
Checkout:bignibou-unit / /scratch/jenkins/workspace/bignibou-unit - hudson.remoting.Channel@e764b98:s-b13180e5
Using strategy: Default
Last Built Revision: Revision 66fc46cd3b57973b88969981cd25872b36fbd3db (origin/HEAD, origin/master)
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin
Seen branch in repository origin/HEAD
Seen branch in repository origin/master
Seen 2 remote branches
Commencing build of Revision 66fc46cd3b57973b88969981cd25872b36fbd3db (origin/HEAD, origin/master)
Checking out Revision 66fc46cd3b57973b88969981cd25872b36fbd3db (origin/HEAD, origin/master)
Warning : There are multiple branch changesets here
[bignibou-unit] $ /bin/sh -xe /tmp/hudson5627362406349041774.sh
+ curl -s -o use-node https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/node/use-node
+ NODE_VERSION=0.11.1
+ source ./use-node
++ [[ -z 0.11.1 ]]
++ set -e
++ mkdir -p /scratch/jenkins/addons/node
+++ uname -m
++ ARCH=x86_64
++ node_name=node-0.11.1-x86_64
++ test -f /scratch/jenkins/addons/node/node-0.11.1-x86_64.tar.bz2
++ test -f /scratch/jenkins/addons/node/node-0.11.1-x86_64/bin/node
++ export PATH=/scratch/jenkins/addons/node/node-0.11.1-x86_64/bin:/opt/maven/latest/bin:/opt/jdk/jdk1.7.latest/bin:/opt/jdk/jdk1.7.latest/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin
++ PATH=/scratch/jenkins/addons/node/node-0.11.1-x86_64/bin:/opt/maven/latest/bin:/opt/jdk/jdk1.7.latest/bin:/opt/jdk/jdk1.7.latest/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin
+ npm cache clean
+ '[' -d node_modules/phantomjs ']'
+ '[' -d node_modules/karma ']'
+ '[' -d node_modules/karma-junit-reporter ']'
+ '[' -d node_modules/karma-phantomjs-launcher ']'
+ test -d /home/jenkins/bin
+ test -L /home/jenkins/bin/karma
+ test -L /home/jenkins/bin/node
Parsing POMs
[bignibou-unit] $ /opt/jdk/jdk1.7.latest/bin/java -cp /scratch/jenkins/maven3-agent.jar:/opt/maven/latest/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /opt/maven/latest /scratch/jenkins/slave.jar /scratch/jenkins/maven3-interceptor.jar /scratch/jenkins/maven3-interceptor-commons.jar 59804
<===[JENKINS REMOTING CAPACITY]===>channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven:  -B -f /scratch/jenkins/workspace/bignibou-unit/pom.xml test
Nov 22, 2013 5:02:12 PM org.apache.maven.cli.event.ExecutionEventLogger projectDiscoveryStarted
INFO: Scanning for projects...
Nov 22, 2013 5:02:15 PM org.apache.maven.cli.event.ExecutionEventLogger projectStarted
INFO:                                                                         
Nov 22, 2013 5:02:15 PM org.apache.maven.cli.event.ExecutionEventLogger projectStarted
INFO: ------------------------------------------------------------------------
Nov 22, 2013 5:02:15 PM org.apache.maven.cli.event.ExecutionEventLogger projectStarted
INFO: Building bignibou 0.1.0.BUILD-SNAPSHOT
Nov 22, 2013 5:02:15 PM org.apache.maven.cli.event.ExecutionEventLogger projectStarted
INFO: ------------------------------------------------------------------------
Downloading: https://repository-balteo.forge.cloudbees.com/snapshot/org/springframework/security/spring-security-core/3.2.0.CI-SNAPSHOT/maven-metadata.xml
Downloading: https://repository-balteo.forge.cloudbees.com/snapshot/org/springframework/security/spring-security-config/3.2.0.CI-SNAPSHOT/maven-metadata.xml
Downloading: https://repository-balteo.forge.cloudbees.com/snapshot/org/springframework/security/spring-security-web/3.2.0.CI-SNAPSHOT/maven-metadata.xml
Downloading: https://repository-balteo.forge.cloudbees.com/snapshot/org/springframework/security/spring-security-taglibs/3.2.0.CI-SNAPSHOT/maven-metadata.xml
Downloading: https://repository-balteo.forge.cloudbees.com/snapshot/org/springframework/security/spring-security-acl/3.2.0.CI-SNAPSHOT/maven-metadata.xml
Nov 22, 2013 5:02:28 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:02:28 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- apt-maven-plugin:1.0.6:process (default) @ bignibou ---
Nov 22, 2013 5:02:55 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:02:55 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- aspectj-maven-plugin:1.2:compile (default) @ bignibou ---
[WARNING] advice defined in com.bignibou.aop.AdvertisementExistsAndBelongsToMemberCheckAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in com.bignibou.aop.AdvertisementExistsCheckAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in org.springframework.mock.staticmock.AnnotationDrivenStaticEntityMockingControl has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in org.springframework.mock.staticmock.AbstractMethodMockingControl has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in org.springframework.mock.staticmock.AbstractMethodMockingControl has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in org.springframework.scheduling.aspectj.AbstractAsyncExecutionAspect has not been applied [Xlint:adviceDidNotMatch]
Nov 22, 2013 5:04:08 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:08 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- maven-resources-plugin:2.6:resources (default-resources) @ bignibou ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 44 resources
Nov 22, 2013 5:04:10 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:10 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- maven-compiler-plugin:2.5.1:compile (default-compile) @ bignibou ---
[INFO] Nothing to compile - all classes are up to date
Nov 22, 2013 5:04:15 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:15 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- aspectj-maven-plugin:1.2:test-compile (default) @ bignibou ---
Nov 22, 2013 5:04:16 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:16 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- maven-resources-plugin:2.6:testResources (default-testResources) @ bignibou ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 9 resources
Nov 22, 2013 5:04:17 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:17 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ bignibou ---
[INFO] Nothing to compile - all classes are up to date
Nov 22, 2013 5:04:18 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: 
Nov 22, 2013 5:04:18 PM org.apache.maven.cli.event.ExecutionEventLogger mojoStarted
INFO: --- maven-karma-plugin:1.5:start (karma) @ bignibou ---
karma start /scratch/jenkins/workspace/bignibou-unit/karma/config/karma.conf.js --browsers PhantomJS --single-run

Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logResult
INFO: ------------------------------------------------------------------------
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logResult
INFO: BUILD FAILURE
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logStats
INFO: ------------------------------------------------------------------------
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logStats
INFO: Total time: 2:06.425s
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logStats
INFO: Finished at: Fri Nov 22 17:04:19 EST 2013
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger logStats
INFO: Final Memory: 27M/117M
Nov 22, 2013 5:04:19 PM org.apache.maven.cli.event.ExecutionEventLogger sessionEnded
INFO: ------------------------------------------------------------------------
[JENKINS] Archiving /scratch/jenkins/workspace/bignibou-unit/pom.xml to /home/balteo/hudson_home/jobs/bignibou-unit/modules/com.bignibou$bignibou/builds/2013-11-22_22-01-58/archive/com.bignibou/bignibou/0.1.0.BUILD-SNAPSHOT/bignibou-0.1.0.BUILD-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal com.kelveden:maven-karma-plugin:1.5:start (karma) on project bignibou: There was an error executing Karma.
cause : There was an error executing Karma.
Stack trace : 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.kelveden:maven-karma-plugin:1.5:start (karma) on project bignibou: There was an error executing Karma.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:117)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:129)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:67)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.maven.plugin.MojoExecutionException: There was an error executing Karma.
    at com.kelveden.karma.StartMojo.createKarmaProcess(StartMojo.java:209)
    at com.kelveden.karma.StartMojo.execute(StartMojo.java:133)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 30 more
Caused by: java.io.IOException: Cannot run program "karma" (in directory "/scratch/jenkins/workspace/bignibou-unit"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
    at com.kelveden.karma.StartMojo.createKarmaProcess(StartMojo.java:205)
    ... 33 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
    ... 34 more
channel stopped
[bignibou-unit] $ /bin/sh -xe /tmp/hudson6880094858310082268.sh
Finished: FAILURE
Was it helpful?

Solution

I tried the same thing based on the following blog post and was having the same issue. http://jespertejlgaard.blogspot.com/2013/09/how-to-execute-your-maven-karma-plugin.html

I ended up discovering that the karma path for the symlink was incorrect.

It should be

test -L $HOME/bin/karma || ln -s /scratch/jenkins/addons/node/$node_name/lib/node_modules/karma/bin/karma $HOME/bin/karma

Also, since that symlink probably already exists, you'll probably want to remove the "test" part on the first execution so that the symlink gets created correctly (might need -sF), then put it back. I did this just in case.

OTHER TIPS

Reading the log I suspect you are running two separate build steps?

If so, then you need to remember that environment variables are not retained between steps.

So your second maven step can't see karma / node etc.

Try combining the two steps.

If you are using the Jenkins Maven plugin, then don't, it causes more problems than it solves.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top