使用节点参数运行Jenkins作业无法使用mkdirs

时间:2017-03-17 10:23:03

标签: jenkins jenkins-plugins jenkins-cli

  • 我在Jenkins中添加了一个Android节点。
  • 现在我正在尝试以节点作为参数运行作业
  • 在工作区中无法使用mkdirs
  • 如果我删除节点作为参数,则作业正常运行

请找到我创建的节点的屏幕截图。 Image

日志:   - 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

3 个答案:

答案 0 :(得分:1)

我终于找到了解决方案。

詹金斯正在使用' jenkins '用户进行自动化,但我已经运行了java命令java -jar slave.jar -jnlpUrl http://IP/computer/Android/slave-agent.jnlp -secret dadasdasdasd与另一个用户一起使用该节点。

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

答案 1 :(得分:0)

我不确定您是否打算将工作区放在/ var / lib / jenkins中,因为您可能没有权限访问该路径,并且它并不真正用于用户文件。

相反,您应该指定执行程序应该有权访问的工作空间路径。查看成功的,未指定节点的作业的输出,并找到它所引用的工作空间的路径,如第2行所示:

在工作区中远程构建Android / var / lib / jenkins / 工作区/ AndroidT

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

答案 2 :(得分:0)

不要忘记无法将某些内容写入磁盘的最基本原因:

  • 运行Jenkins代理的用户没有对工作区/var/lib/jenkins/workspace/的写权限
  • 磁盘已满。这就是我发生的事情。