2017-03-17 24 views
2
  • JenkinsにAndroidノードを追加しました。
  • 今私は、パラメータ
  • としてノードでジョブを実行しようとしていますそれは、私がパラメータとしてノードを削除すると、仕事のスクリーンショットを見つける細かい

pleseはを実行し、ワークスペース ノードパラメータでJenkinsジョブを実行するとmkdirsに失敗する

  • に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

  • +2

    "ノードをパラメータとして"ジョブに追加することで何を意味するのか説明できますか?このエラーメッセージは、Androidマシン上で権限が正しくないことを示唆しています。 jenkinsのユーザー_マシンにログインして、 'mkdir -p/var/lib/jenkins/workspace/AndroidT'を実行できるかどうか確認してください。 –

    +0

    ノードとは、パラメータとしてAndroidノードをパラメータとするジョブを持っています。 – RosAng

    +0

    管理者として実行可能なノードサービスを実行し、対象のルートフォルダーに対する読み取り書き込みアクセス許可があることを確認します – SACn

    答えて

    0

    私はあなたがおそらくパスへのアクセス権を持っていないので、は/ var/libに/ジェンキンスでワークスペースを置くつもりかわからない、それはユーザーのために実際にはありませんファイル。

    代わりに、エグゼキュータがアクセスする必要がある作業領域パスを指定する必要があります。 2行目のように、あなたの成功、不特定のノードのジョブの出力に目を通すと、それが参照されたワークスペースへのパスを見つける:

    ビル遠隔操作アンドロイドのワークスペースにの/ var/libに/ジェンキンス/ワークスペース/ AndroidT

    ノードのリモートルートディレクトリとして/ workspaceの前にそのパスを使用します。

    1

    最終的に解決策が見つかりました。

    ジェンキンスは「jenkins」というユーザーを使用していますが、javaコマンドjava -jar slave.jar -jnlpUrl http://IP/computer/Android/slave-agent.jnlp -secret dadasdasdasdを実行して別のユーザーとノードを起動していました。

    ユーザーをjenkinsに切り替えて、コマンドを実行したところ、問題は修正されました。

    関連する問題