2017-03-17 104 views
2
  • 我在Jenkins中添加了一个Android节点。
  • 现在我试图运行与节点作为参数作业
  • 它无法在工作区
  • 到mkdirs如果我删除节点作为参数,作业运行正常

普莱舍找到截图为我创建的节点。 Image使用节点参数运行Jenkins作业不能访问mkdirs

日志: - Loading node environment variables. Building remotely on Android in workspace /var/lib/jenkins/workspace/AndroidT [WS-CLEANUP] Deleting project workspace... java.io.IOException: Failed to mkdirs: /var/lib/jenkins/workspace/AndroidT at hudson.FilePath.mkdirs(FilePath.java:1191) at hudson.model.AbstractProject.checkout(AbstractProject.java:1267) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) at hudson.model.Run.execute(Run.java:1741) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:410) Finished: FAILURE

+2

你能解释一下你的意思吗?将“节点作为参数”添加到作业中?该错误消息表明Android机器上的权限不正确。尝试登录到机器_作为jenkins user_并查看是否可以运行'mkdir -p/var/lib/jenkins/workspace/AndroidT'。 –

+0

节点作为参数意味着,我有一个参数化的作业,它将Android节点作为其参数之一。 – RosAng

+0

以管理员身份运行节点服务可执行文件,并确保它已读取目标根文件夹的写入权限 – SACn

回答

0

我不知道你打算把在/ var/lib中/詹金斯您的工作,因为你可能没有权限路径,它不是真正为用户文件。

相反,您应该指定您的执行程序应该有权访问的工作区路径。通过看你的成功,非指定节点作业的输出,并找到它的路径指的是工作区,如第2行:

建设远程Android上的工作区的/ var/lib中/詹金斯/工作区/ AndroidT

然后在/ workspace之前使用该路径作为节点的远程根目录。

1

我终于找到了解决方案。

Jenkins正在使用'jenkins'用户进行auomation,但我运行了java命令java -jar slave.jar -jnlpUrl http://IP/computer/Android/slave-agent.jnlp -secret dadasdasdasd与另一个用户启动节点。

我将用户切换到jenkins,运行命令并解决了问题。

相关问题