Copy To Slave Plugin

Skip to end of metadata
Go to start of metadata

Plugin Information

Plugin ID copy-to-slave Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
Dependencies
1.4.3
Sep 28, 2013
1.424
Source Code
Issue Tracking
Maintainer(s)
GitHub
Open Issues
Vivekanand S V (id: svvivek)
Usage Installations 2013-Jun 3320
2013-Jul 3532
2013-Aug 3532
2013-Sep 3604
2013-Oct 3815
2013-Nov 3895
2013-Dec 3878
2014-Jan 4142
2014-Feb 4353
2014-Mar 4509
2014-Apr 4510
2014-May 4693

This plugin allows to copy a set of files, from a location somewhere on the master node, to jobs' workspaces. It also allows to copy files back from the workspaces of jobs located on a slave node to their workspaces on the master one.

About this plugin

This plugin allows:

  1. To copy, from a location somewhere on the master node, to the workspace of a job being built, a set of files that are required for the good execution of the job. This is useful, for example, when not all the build scripts (Ant build files, etc.) are in the SCM.
  2. To copy, from the slave node running the job, back to the master node, a set of files that are required for some post-processing (e.g. test results).

User guide

Copy files into the job's workspace before building

To activate this plugin for a given job, simply check the Copy files into the job's workspace before building checkbox in the Build Environment section of the job. You then get the following fields:

  • Files to copy is where you define the files that have to be copied to the workspace of the job before the build actually takes place. If the files to copy have previously been copied (in a previous build), they are overwritten.
  • Paths are relative to is used to define where the files specified in Files to copy come from. There are three choices (cf. screenshot below). Using HUDSON_HOME/userContent is highly recommended.

The Advanced section offers the following additional fields:

  • Files to exclude from the copy allows to define which files, that have been taken into account by the Files to copy field, must not be copied.
  • Flatten directories is used to flatten the directory structure, if applicable.
  • Include Ant's default excludes is used to specify that Ant's default excludes (e.g. .svn folders, etc.) must also be copied.

Kindly refer to the inline help for more information.

Copy files back to master node

To activate this plugin for a given job, simply check the Copy files back to the job's workspace on the master node checkbox in the Post-build Actions section of the job. You then get the same two fields as for the Copy files to slave node before building section (note that label in the screenshot is old):

Version history

Version 1.4.3 (09/28/2013)

  • Fixed ISSUE#18899 by adding an option to select whether to run copying files back to master after result is finalised or along with other post build tasks. (See the updated screen shot above)
  • Plugin upgraded to Jenkins 1.424
  • Sorry about versions 1.4.1 and 1.4.2, they failed while performing release as I am new to jenkins,maven and git. 

Version 1.4 (01/17/2012)

  • Implemented issue #10691: Added a new Override destination folder field to override destination folder on master node
  • As part of issue #12281, added a new section in the main Jenkins configuration screen to specify an additional Paths are relative to option
  • Fixed issue #12281: It is now possible to remove HUDSON_HOME from the list of base locations for copy to slave operations (from the new section in the main Jenkins configuration screen)
  • Fixed a typo in the help message of the Files to copy field
  • Plugin upgraded to Jenkins 1.409

Version 1.3 (03/02/2011)

  • New Paths are relative to option offering more possibilities to specify the root location of files to copy (three possibilities: HUDSON_HOME/userContent, HUDSON_HOME or the jobs' workspace)
  • Refactored UI to emphasize the new Paths are relative to field
  • Changed labels for easier understanding

Version 1.2.3 (12/13/2010)

  • New Flatten directories option (see JENKINS-8220)
  • Fixed JENKINS-8274: An InvalidClassException was thrown when using copy-to-slave from Linux to Windows
  • Fixed JENKINS-8155: It's now possible to copy to an AIX, HP-UX or Linux S/390 node

Version 1.2.2 (11/11/2010)

  • Fixed JENKINS-7021: It is now possible to copy files relatively to HUDSON_HOME rather than the workspace of jobs
  • Fixed JENKINS-7999: Ant's default excludes are now taken into account
  • Plugin upgraded to Hudson 1.375

Version 1.2.1 (09/01/2010)

Version 1.2 (03/08/2010)

  • The use of the plugin is no more restricted to free-style projects

Version 1.1 (02/01/2010)

  • New Copy back to master notifier which allows copying data back to the master once the build ends

Version 1.0 (10/27/2009)

  • Initial release

Labels

plugin-slaves plugin-slaves Delete
plugin-notifier plugin-notifier Delete
plugin-buildwrapper plugin-buildwrapper Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Mar 09, 2010

    Mark Miller says:

    I need a little help (more information) to get this plug-in working.  I hav...

    I need a little help (more information) to get this plug-in working.  I have two machines, an AIX Hudson master and a Windows machine running XP as the Hudson slave.  The slave agent is installed as a service.  It works great. I actually have the slave machine building my Java docs.  So the setup works, but I am unable to copy any files from the master machine to slave using this plug-in.   Here's what I do:

    1. Create new job.
    2. No source control, because I'm just testing file copy.
    3. Tie job to slave node.
    4. Click on "Copy files to slave node before building"

    Step 4 is when I start running into trouble.  When I specify "/test/build.xml" the edit box complains it can't find the file.  I've verified the file exists.  I even copy-pasted the path from the console window to make sure it's not a typo.  Hudson edit box says it can't find the file.  Ok, fine, I ignore it and run the job anyway.  The job reports success... but there is no file copied over, and I don't see anything in the job console output showing a file being copied over, but the plug-in also doesn't complain that it's not finding any files.  I'm using plug-in 1.2.  I'm using Hudson 1.348.

    The help text for each option is confusing.  The help says:

    "When a build takes place on a slave node, copies a set of files from the master node to this slave node. This is useful, for example, when some files required for the build to take place are not present in the SCM and are located direclty in the project's workspace.
    Of course, no copy will take place if the build is run on the master node."

    "Comma- or space-separated list of patterns of files/directories to be copied from the master node to the slave one. See the @includes of Ant fileset for the exact format. The base directory is the workspace.
    E.g.: *.xml,*/.properties"

    The part that's confusing me is that when a job is tied to a slave node the "workspace" is now on the slave machine, not local to the master, so any file paths using the workspace as the base wouldn't work since the files I need to copy aren't on the slave, obviously.  I'm thinking this is just bad text, or maybe I'm missing something obvious about the wording.

    So here is what I do know. 

    1. The file copy edit box reports it can't find the file specified, even though I copy pasted the path and the file exists on the master machine.
    2. The job runs successfully but there is no output in the console showing a file being copied.
    3. The job runs successfully but there is no output showing that the plug-in did not find the file specified.

    If you could provide any insight as to what I'm doing wrong I'd really appreciate it.  I've systematically tried just about everything I can think of and have been completely unsuccessful at getting the plug-in to work for me.

    I appreciate the help.

      Mark

    1. Mar 09, 2010

      Vincent Latombe says:

      I agree with the previous comment, I have no clue about where the files to copy ...

      I agree with the previous comment, I have no clue about where the files to copy to the slave are taken from.

    2. Mar 10, 2010

      Romain Seguy says:

      When you activate this plugin for job A, then the Files to copy field is expecte...

      When you activate this plugin for job A, then the Files to copy field is expected to contain a set of folders/files that are relative to the workspace of the job (there is a link in to this workspace in the inline help), that is, that are relative to the folder <HUDSON_HOME>/jobs/A/workspace (as of Hudson 1.312). E.g., if the files to copy are named *.xml and are located in <HUDSON_HOME>/commonFiles, then the field must be set to ../../../commonFiles/*.xml.

      Structure of a Hudson master node as of Hudson 1.312
      <Hudson master home>
        +- jobs
        |  +- A
        |     +- workspace
        |        +- <content of the workspace on the master>
        +- ...
      
      Structure of a Hudson slave node as of Hudson 1.312
      <Hudson slave home>
        +- workspace
        |  +- A
        |     +- <content of the workspace on the slave>
        +- maven2.1-interceptor.jar
        +- maven-agent.jar
        +- maven-interceptor.jar
        +- slave.jar
      
      1. Mar 10, 2010

        Vincent Latombe says:

        Hello, thanks for the precisions, I have been able to copy a file that sits in t...

        Hello,
        thanks for the precisions, I have been able to copy a file that sits in the workspace. However, couldn't manage to copy an xml file that is inside HUDSON_HOME. In my case, I've tried using ../../../clean.xml (the file sits in HUDSON_HOME) and it doesn't seem to be copied to the slave.

        Furthermore, even when it works, it could be useful to get a log of what was copied (at least the number of files). Currently, I get nothing in the output.

        1. Mar 10, 2010

          Romain Seguy says:

          Try to manually create the workspace folder on the master, it should help I thin...

          Try to manually create the workspace folder on the master, it should help I think. For the next release I will add the creation of the workspace to avoid this pbm.
          The plugin has some logging capabilities, you need to set the log level to FINEST.

          1. Mar 10, 2010

            Vincent Latombe says:

            Ok, I now have the logs, but I still cannot reference any file that is in parent...

            Ok, I now have the logs, but I still cannot reference any file that is in parent directories. Thanks for the help anyway.

            1. Mar 10, 2010

              Romain Seguy says:

              That's weird... May you send me the details of you config (Hudson version and jo...

              That's weird... May you send me the details of you config (Hudson version and job's config.xml) on my mail so that I can investigate on that?

              1. Apr 21, 2010

                Carl Quinn says:

                I am using Hudson 1.353 and the latest version 1.2 of this plugin and I also see...

                I am using Hudson 1.353 and the latest version 1.2 of this plugin and I also see a failure in its ability to get to files above the jobs workspace. Even with the workspace manually created.

                Is it possible that Hudson core is preventing it from accessing files above the workspace? Or maybe this plugin is somehow being executed on the slave and not the master?

                I am trying to use this plugin to push a build artifact from one job built on a local slave, to another job that builds on an EC2 instance which doesn't have access to our network. This plugin seemed like just the right tool to do the push...

                1. Nov 11, 2010

                  Romain Seguy says:

                  The 1.2.2 release adds a new option which allows specifying the files relatively...

                  The 1.2.2 release adds a new option which allows specifying the files relatively to HUDSON_HOME rather than the workspace. HTH.

  2. Mar 16, 2010

    Gabriel Baez says:

    It would be awesome if this  plugin  cloned the work  space ...

    It would be awesome if this  plugin  cloned the work  space  from the master to a slave for building.  

    For example in my  environment we cant install  clearcase on linux machines and there are some applications that need to be build  from  a linux environment.   My hudson install it's  on a windows server,  if I could checkout the code from the windows hudson  and then send that to the slave that would be great!

    1. Mar 16, 2010

      Romain Seguy says:

      You should take a look at the Clone Workspace SCM Plugin for that.

      You should take a look at the Clone Workspace SCM Plugin for that.

  3. May 12, 2010

    Glen Accardo says:

    I'm having exactly the same issue as Vincent Latombe.  I can specify *&...

    I'm having exactly the same issue as Vincent Latombe.  I can specify ** as the files to copy to the slave, and get every
    file in the workspace.  However, if I specify "../**" or any relative path, I get nothing.  I'm running Hudson 1.355 on a
    Windows 2003 system.

    Any assistance resolving this issue would be appreciated.

    1. May 20, 2010

      Romain Seguy says:

      Kindly open an issue in JIRA for that an assign it to the proper component (you ...

      Kindly open an issue in JIRA for that an assign it to the proper component (you may need to request through the dev mailing list for the copy-to-slave component to be created, I don't think it's been created yet).

      1. Jul 19, 2010

        Fred G says:

        I opened a bug for this: http://issues.jenkins-ci.org/browse/JENKINS-7021 Pleas...

        I opened a bug for this: http://issues.jenkins-ci.org/browse/JENKINS-7021

        Please vote for it.

        1. Nov 11, 2010

          Romain Seguy says:

          Fixed in 1.2.2: It adds a new option which allows specifying the files relative...

          Fixed in 1.2.2: It adds a new option which allows specifying the files relatively to HUDSON_HOME rather than the workspace.

  4. Nov 29, 2010

    kdszh says:

    Hi all:   what's the execution order between copy-to-slave and gr...

    Hi all:

      what's the execution order between copy-to-slave and groovyo-postbuild plugin ?

      I want to run copy-to-slave first,then groovy-postbuild ,but since I install groovy-postbuild plugin ,then install copy-to-slave plugin ,Hudson always run groovy-postbuild first.

      somebody help me ? :(

      Hudson version: 1.383

      copy-to-slave: 1.2

      groovy-postbuild: 1.3

    1. Nov 30, 2010

      Romain Seguy says:

      Hi, What is your exact requirement? I guess that your need it to process the fi...

      Hi,

      What is your exact requirement? I guess that your need it to process the file(s) that the build has produced using some Groovy stuff. If yes, couldn't you do it on the slave side before using the "Copy back to master" option?

      I ask that because the order of the execution of the plugins can't be guaranteed unless some special care is taken at the source code level. But, I won't implement that in the copy-to-slave plugin since the requirements will never be the same depending on users.

  5. Dec 02, 2010

    hbockelmann - says:

    Hey you, I want to use this pretty cool plugin to copy some generally needed scr...

    Hey you, I want to use this pretty cool plugin to copy some generally needed scripts from master to several slaves.

    The files are located in $HUDSON_HOME/userContent/* and the upload to slaves work quite good (at least on my Linux slaves ... there are some problems on AIX slaves btw).

    What I now see is that on the slaves the files get copies to $WORKSPACE and the relative path from the master is preserved, ie. on the slave a new directory userContent is created. I think it would be a fine option for the plugin to be able to set the path on the slave (relative to $WORKSPACE) within the job configuration.

    1. Dec 02, 2010

      Romain Seguy says:

      Hi Hendrik, I understand your need, but it raises a question (which is why I di...

      Hi Hendrik,

      I understand your need, but it raises a question (which is why I didn't implement such a functionality yet): How the handling of several different paths to copy (e.g. userContent/*/, myScripts/*/) would be done? In case you copy just one folder, then ok, it can be easily implemented in the plugin by adding some kind of a mv command. But in case of several folders, that's far more complicated than that.
      What about having a "flatten" option which would just, well, flatten everything in the workspace directory?

      1. Dec 02, 2010

        hbockelmann - says:

        Hey Romain, thanx for quick response. imho it would be a nice option if I could ...

        Hey Romain, thanx for quick response. imho it would be a nice option if I could set a "flatten" flag that ensures all files from different directories on master to be copied directly into $WORKSPACE of the slave.

        Maybe there could be a dropdown-menu which says: 'keep directory structure of master' or 'copy all files to $WORKPACE'

        1. Dec 02, 2010

          Romain Seguy says:

          Ok, let's go for the "flatten" option. Please open an issue in the JIRA issue tr...

          Ok, let's go for the "flatten" option. Please open an issue in the JIRA issue tracker, it'll be automatically assigned to myself and I'll be sure to not lose track of it (as I won't do it today).

  6. Dec 23, 2010

    Patrick Renaud says:

    This plugin is interesting. However, in the case of a maven2 project I noticed i...

    This plugin is interesting. However, in the case of a maven2 project I noticed it runs after the pre-build steps, which is too late for what I would need it to. Is there a way to bump its execution order to occur before the pre-build steps?

    1. Jan 02, 2011

      Romain Seguy says:

      I'm afraid the answer is no...

      I'm afraid the answer is no...

      1. Jan 04, 2011

        Patrick Renaud says:

        Hi Romain, But you do realize that it makes this plugin rather useless for mave...

        Hi Romain,

        But you do realize that it makes this plugin rather useless for maven2 jobs, do you? Or should it say: it makes it useless for maven2 jobs who need the files copied by the plugin during the pre-build steps.

        If it is really impossible to run the plugin before the maven pre-build steps as you indicated, would you be able to suggest an alternate path to do what I need to do? In essence, the pre-build step need to run on files copied by the copy-to-slave plugin (thus files purposely not in SCM). Otherwise, it seems that my only choice is to abandon using this plugin, and that would not be my first choice. This is a nice plugin that fits well in a build process, but executing at the wrong time.

        1. Jan 05, 2011

          Romain Seguy says:

          Hi Patrick, One first thing, can you confirm I'm right if I say that what bring...

          Hi Patrick,

          One first thing, can you confirm I'm right if I say that what brings pre- and post-build steps to your Maven jobs is the M2 Extra Steps Plugin? I'll assume the answer is yes.

          This plugin adds pre-build steps by using the notion of build wrapper. The Copy To Slave plugin does exactly the same. The bad point with build wrappers is that there's currently no way to control the order in which they are executed (although this could actually be done by altering the behavior of Hudson core). That's why my answer is no, and that's also why versions 1.0 and 1.1 of the plugin were purposely not usable for Maven jobs.

          1. Jan 06, 2011

            Patrick Renaud says:

            Salut Romain, OK, now I understand! Tx very much for the explanation. Is it...

            Salut Romain,

            OK, now I understand! Tx very much for the explanation. Is it in your plans to upgrade the plugin eventually so we could use it for maven jobs that way? No rush, just asking...

            Tx again!

            1. Mar 19, 2011

              Romain Seguy says:

              I'm not a Maven user + Hudson is currently under heavy changes with the move to ...

              I'm not a Maven user + Hudson is currently under heavy changes with the move to Maven 3, so I don't feel I can do this by myself.
              EDIT: Cf. comment below.

            2. Mar 19, 2011

              Romain Seguy says:

              Patrick, I really don't know why I didn't think about that before, but what if I...

              Patrick, I really don't know why I didn't think about that before, but what if I propose the copy feature through a build step in addition to the current build wrapper? I think it could fit the need you describe + I should be able to easily implement it.
              If you're ok with that, please open a JIRA issue and I'll do the work (I don't give a planning of course, I'll implement that on my spare time).

  7. Jun 01, 2011

    Daniel Tkatch says:

    I can copy singular files, but not directories. This is my tree: ~/userContent...

    I can copy singular files, but not directories. This is my tree:

    ~/userContent$ tree
    .
    ├── readme.txt
    ├── testdir
    │   └── testfile.txt
    └── workspace -> /home/dtka/workspace
    
    2 directories, 2 files

    The console informs me as following: 

    [copy-to-slave] Copying 'testdir', excluding nothing, from 'file:/var/lib/jenkins/userContent/' on the master to 'file:/home/dtka/hudson-slave-root/workspace/LoginCheckProfileTest/' on 'aresboxa'.

    but nothing has been copied.

    It does work if I copy the readme.txt file in that directory. What am I missing?

    1. Jun 01, 2011

      Romain Seguy says:

      Try with testdir/**/*. This specifies that you want the files inside...

      Try with testdir/**/*. This specifies that you want the files inside testdir to be copied, recursively.

      1. Jun 01, 2011

        Daniel Tkatch says:

        Thank you for a quick reply! I would like to copy only a subdirectory of wo...

        Thank you for a quick reply!

        I would like to copy only a subdirectory of workspace directory in my example above. Can I do that so that <HUDSON_HOME>/userContent/workspace/subdir will be copied to <JOB_WORKSPACE_SLAVE>/subdir?

        When I am specifying workspace/subdir/**/* I am getting the following folder structure on the target: <JOB_WORKSPACE_SLAVE>/workspace/subdir.

        1. Jun 01, 2011

          Romain Seguy says:

          That's technically not possible to do that (nor implement that) in the plugin. Y...

          That's technically not possible to do that (nor implement that) in the plugin. You'll need to do some Shell or Ant scripting.

  8. Dec 14, 2011

    Paul Sokolovsky says:

    Isn't anyone, including author, sees that plugin is a security hazard? Jenkins a...

    Isn't anyone, including author, sees that plugin is a security hazard? Jenkins allows to have access separation, where only users with admin permissions haev access to global config. However, with this plugin installed, any user who has job create/edit permission can fetch Jenkins' config.xml, and that may contain sensitive data, like EC2 credentials for example.

    That's why carefully written plugins split there config in 2 parts: global config where arbitrary paths, credentials, etc. are set, job config, where usually user can just select a choice from predefined set using a dropdown.

    Suggestions for alleviating immediate security threat: remove "HUDSON_HOME" option, replace it with "HUDSON_HOME/copyToSlave" option. The latter option is still required to preserve generality of plugin, as "HUDSON_HOME/userContent" is not suitable for all content, as it is publicly accessible via http://<jenkins>/userContent. "Job's workspace on master" on its own is not enough either, as for the case of hundreds of jobs all requiring same prerequisites, it's very cumbersome to configure each job's workspace.

    And well, this assumes that you didn't try to patch Ant's file pattern code which by all means should prohibit ".." syntax to access files outside of the specified prefix, because otherwise this plugin can be used to access any file on master's filesystem which is very big security risk.

    1. Dec 14, 2011

      Romain Seguy says:

      I'm aware of that and I agree, but I just don't have time to work on that. Don't...

      I'm aware of that and I agree, but I just don't have time to work on that. Don't hesitate to submit patch (and create JIRA issues), I'll review and incorporate it.

      • HUDSON_HOME option: It's required by some users, it can't be dropped. But having an entry in the global config to enable/disable this option can be done. Notice the "not advised" flag.
      • HUDSON_HOME/userContent: This choice has been made so that users know what they can get in their workspace. The goal with the plugin is not to act as a file repository, but just to provide a mechanism to store a few centralized files (build scripts, etc.), hence exposing them should not be a problem.
      • Job's workspace on master: Kept for backward compatibility only. I agree with what you say, that's why it's flagged as "not advised".

      Out of scope: If you're concerned about security, there are many other places in Jenkins that you should check. For example, some path validation mechanisms (I'm referring to these tips that may appear below fields when keying some wrong values) allow to list the content of the master filesystem. Also, the Groovy console is a threat. Etc. Jenkins has to be used carefully, by trusted users if security is required.

      Btw, shouldn't sensitive credentials be stored in a vault (e.g. a keystore) rather than in a plain file?

      1. Dec 15, 2011

        Paul Sokolovsky says:

        Thanks for quick reply and agreeing that this is an issue (I may imagine that fo...

        Thanks for quick reply and agreeing that this is an issue (I may imagine that folks using Jenkins behind firewalls with 2-3 people in teams wouldn't even consider it such, but Jenkins is more than that).

        HUDSON_HOME option: It's required by some users, it can't be dropped.

        Well, I'm not sure what usecase would be for something exactly *in* HUDSON_HOME. Per comments above, people sometimes want to push result of some other job. Well, that calls for adding HUDSON_HOME/jobs . That's not ideal either (can bypass project-based matrix security, etc.), but having HUDSON_HOME is just immediate security issue.

        Having global/per-job config split is of course the ideal solution, but I'm personally not so knowledgeable about Jenkins and plugins to do that ;-(.

        Out of scope: If you're concerned about security, there are many other places in Jenkins that you should check

        I bet. Jenkins core at least gets regular updates and attention, but plugins may indeed cause issues. But the only way to deal with that IMHO is to take such issues seriously, not thinking "well, that unlikely will apply in practice". Because first you use it with team of 2-3 behind the firewall, then give access contractors from another part of the world, then to customers/community...

        Btw, shouldn't sensitive credentials be stored in a vault (e.g. a keystore) rather than in a plain file?

        Well, yeah, one of selling point of Jenkins may also become its curse. Some plugins attentively offer both "paste" and "set path of a file" fields for such data, but some go with just "paste" ones w/o any choice (and yes, that's an issue too).

        So, I opened https://issues.jenkins-ci.org/browse/SECURITY-21 for this, and would for sure post patch for just disabling HUDSON_HOME. Not sure if I could go further though ;-(.

        1. Dec 16, 2011

          Romain Seguy says:

          I don't have access to this issue (only you and KK have, I guess). May you pleas...

          I don't have access to this issue (only you and KK have, I guess). May you please cancel it and open another one in the JENKINS project? Thanks.

          1. Jan 03, 2012

            Paul Sokolovsky says:

            Happy New Year! Sorry for the delay due to holidays. Resubmitted as https://...

            Happy New Year! Sorry for the delay due to holidays. Resubmitted as https://issues.jenkins-ci.org/browse/JENKINS-12281 . There's also a fork on github which implements a simple measure (removing HUDSON_HOME from choices): https://github.com/pfalcon/copy-to-slave-plugin

            1. Jan 13, 2012

              Romain Seguy says:

              I've attached to the JIRA issue a version of the plugin (1.4-SNAPSHOT) which imp...

              I've attached to the JIRA issue a version of the plugin (1.4-SNAPSHOT) which implements the fix. Can you give a try please? Thanks.

              1. Jan 17, 2012

                Paul Sokolovsky says:

                Very nice, thanks for quick turnaround and adding an admin section for configura...

                Very nice, thanks for quick turnaround and adding an admin section for configuration. Looking forward to a release soon!

  9. Mar 19, 2012

    michael d says:

    Would be great to use this also as a build step and not only pre or post build. ...

    Would be great to use this also as a build step and not only pre or post build.

    This is useful for cases like you want to copy the build log file to the slave and do something with it, or for example, i had an issue where i needed to view scm-polling.log file on the slave, and it appears only on the master. this file only updates after build starts so i couldnt use the plugin to copy it.

    1. Mar 19, 2012

      Romain Seguy says:

      Please create a JIRA issue for that.

      Please create a JIRA issue for that.

  10. Mar 26, 2012

    Maxim Kopeyka says:

    Hi, I've found a bug with permissions, I've tried to copy .sh script to workspa...

    Hi,

    I've found a bug with permissions, I've tried to copy .sh script to workspace and plugin copied it as text file however I've made it executable (chmod 755)

    1. Mar 26, 2012

      Romain Seguy says:

      See issue #8249.
  11. Aug 01, 2012

    sangeetha saggam says:

    Hi, I can see only options like copy files from master to slave before building...

    Hi,

    I can see only options like copy files from master to slave before building and slave to master after build.

    Is there a way to copy files like build.xml which is generated after the build  from master to slave?

    Thanks,

    Sangeetha.

  12. Sep 12, 2012

    Jun Guan says:

    I was trying this plug-in with copying the default readme.txt file to a slave bu...

    I was trying this plug-in with copying the default readme.txt file to a slave but hit this error:
    Building remotely on 10.8.26.213 in workspace /opt/jenkins/workspace/Test_deploy_build_to_slave
    [copy-to-slave] Copying 'readme.txt', excluding nothing, from 'file:/C:/Users/Administrator/.jenkins/userContent/' on the master to 'file:/opt/jenkins/workspace/Test_deploy_build_to_slave/' on '10.8.26.213'.
    FATAL: null
    java.lang.NullPointerException
    at java.util.regex.Matcher.getTextLength(Unknown Source)
    at java.util.regex.Matcher.reset(Unknown Source)
    at java.util.regex.Matcher.<init>(Unknown Source)
    at java.util.regex.Pattern.matcher(Unknown Source)
    at hudson.plugins.xshell.XShellBuilder.perform(XShellBuilder.java:78)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)

    Any idea on this? Thanks a lot!

  13. Jul 19, 2013

    Kalps sat says:

    I am trying to copy a file from another master job's workspace(upstream)  t...

    I am trying to copy a file from another master job's workspace(upstream)  to slave(note both master and slave are windows boxes)

    Files to copy specified as  "../jobs/testproj/TestData/TestData.xml"

    Paths are relative to selected as "$JENKINS_HOME/userContent"[copy-to-slave] Copying '../jobs/testproj/TestData/TestData.xml', excluding nothing, from 'file:/C:/.jenkins/userContent/' on the master to 'file:/C:/Jenkins/Slave/workspace/testslaveproj/workspace/' on '<slave machine>l'.
    This is not working.

    but readme.txt copied fine from userContent directory. what am i doing wrong?

    Also, want to specify the user input variable in the Files to Copy like ../jobs/testproj/TestData/$file.xml, this does not work unless i specify a quotes around "$file", but it also adds quotes around the $file value. is it possible to use job variable in Files to Copy section?

  14. Dec 20, 2013

    Thomas Parker says:

    I'm running into a problem with a Jenkins server no Windows.  The specified...

    I'm running into a problem with a Jenkins server no Windows.  The specified file is not being copied to the slave.  I think it has to do with spaces in my Jenkins home dir.  Notice the %20 substrings in the Jenkins home directory:[copy-to-slave] Copying 'logParsingRules/.', excluding nothing, from 'file:/C:/Program%20Files%20(x86)/Jenkins/userContent/' on the master to 'file:/users/tparker/jenkins-slave/workspace/SHAPE-linux/' on 'estragon'.