-
Bug
-
Resolution: Fixed
-
Critical
-
None
It seems as though hockeyapp plugin v 1.06 is completely broken on remote slaves.
Uploading to HockeyApp...
/scratch/jenkins/workspace/myjob does not exist.
at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:483)
at org.apache.tools.ant.types.FileSet.iterator(FileSet.java:69)
at hockeyapp.HockeyappRecorder.perform(HockeyappRecorder.java:138)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:795)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:716)
at hudson.model.Run.execute(Run.java:1690)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:246)
Build step 'Upload to HockeyApp' marked build as failure
It looks like this bug was introduced in [1b21917b57](https://github.com/jenkinsci/hockeyapp-plugin/commit/1b21917b57059b5184bb3e538c8b3528cd820b94).
The fix is to use something like hudson.FilePath#copyRecursiveTo() to properly copy the file over the remoting channel.
I think the file set should be evaluated on the slave using e.g. hudson.remoting.Callable and copied to the master using getFileLocally. Currently, the file set is evaluated on the master using the workspace path of the slave. That's the problem. I've attached a basic example of a Callable. Is anybody working on the issue? Otherwise I'll fix the issue.
launcher.getChannel().call(new RemoteFileTask(build.getWorkspace().getRemote(), vars.expand(filePath)))