我试图在Jenkins中使用CI javascript库。我想使用NodeJS插件来启动一些测试,但我无法解决这个错误:
[workspace] $ /Users/michael_case/dev/jenkins/temp/hudson4905877153282795022.js
FATAL: command execution failed
java.io.IOException: Cannot run program "/Users/michael_case/dev/jenkins/temp/hudson4905877153282795022.js" (in directory "/Users/michael_case/.jenkins/jobs/js-build/workspace"): error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:775)
at jenkins.plugins.nodejs.tools.DecoratedLauncher.launch(DecoratedLauncher.java:49)
at jenkins.plugins.nodejs.tools.NpmPackagesBuildWrapper$2.launch(NpmPackagesBuildWrapper.java:88)
at hudson.Launcher$ProcStarter.start(Launcher.java:355)
at hudson.Launcher$ProcStarter.join(Launcher.java:362)
at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:84)
at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:42)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:756)
at hudson.model.Build$BuildExecution.build(Build.java:198)
at hudson.model.Build$BuildExecution.doRun(Build.java:159)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
at hudson.model.Run.execute(Run.java:1710)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:234)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:185)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
... 18 more
我100%肯定Jenkins在我的用户名(michael_case)下运行。您甚至可能会注意到我已经将java.io.tmpdir覆盖到我自己的主目录下的一个文件夹,Jenkins肯定可以访问该文件夹。
问题hudson4905877153282795022.js
中的临时文件似乎是在此作业步骤中创建的,并立即清理,因为我无法查看它以检查其权限或内容。 (我甚至上一步执行ls -la /Users/michael_case/dev/jenkins/temp
但文件未列出)
有什么想法?有关后续步骤的任何建议吗?
更新:
我正在运行嵌入式Jetty服务器。 我确实看到了this SO问题,但由于我没有运行Tomcat,我不知道它是如何应用的。