I'm using a jenkins master running on windows, with slave that are windows, linux and iOS. 2.13 was the last plugin that worked with my setup, because the / was always getting messed up on the unix machines. Here is the fix I came up with.
File() is always run on the local machine (master) so any paths run through it would be converted to the OS of the master node. This was problematic when the remote and the master had different OS. Using FilePath(File) also converted based upon the OS of the master. This change uses FilePath(Channel, String) to use the channel to the remote server so that the path is correctly configured for the remote OS, irrespective of the master OS.
I'm using a jenkins master running on windows, with slave that are windows, linux and iOS. 2.13 was the last plugin that worked with my setup, because the / was always getting messed up on the unix machines. Here is the fix I came up with.
File() is always run on the local machine (master) so any paths run through it would be converted to the OS of the master node. This was problematic when the remote and the master had different OS. Using FilePath(File) also converted based upon the OS of the master. This change uses FilePath(Channel, String) to use the channel to the remote server so that the path is correctly configured for the remote OS, irrespective of the master OS.