SCP plugin

Plugin Information

Plugin ID scp
Latest Release 1.6
Latest Release Date Feb 02, 2010
Changes via Fisheye In Latest Release
Since Latest Release
Maintainer(s) Ramil Israfilov (id: ramazanyich2)
Issue Tracking Open Issues

This plugin uploads build artifacts to repository sites using SCP (SSH) protocol. First you should define SCP hosts on hudson global config page. After that you can refer to this hosts using select list. See picture for global config:

After entering username/password automatic logon check is performed to see if you entered it correctly.
Root repository path must exist before you can reference it and should be accessible by user who do publish of files.


Then per job you can enable publishing of build artifacts:

Source points to files which will be uploaded. You can use ant includes syntax, eg. folder/dist/*.jar. Path is constructed from workspace root.
Note that you cannot point files outside the workspace directory. For example providing: ../myfile.txt won't work...
Destination points to destination folder on remote site. It will be created if doesn't exists and relative to root repository path.
You can define multiple blocks of source/destination pairs.

Change Log

Version 1.6 (Feb 2, 2010)
  • Update code for more recent Hudson
Version 1.5.2 (Nov 12, 2008)
  • Fix for issue #2609: version 1.5.1 of the SCP plugin is broken for "password only" authentication
Version 1.5.1
  • Enhancement, support for public key authentication (issue #1269)
  • Enhancement, works now with Maven2 jobs (issue #1845)
Version 1.5
  • Improved error diagnosis when the specified file pattern didn't match anything.
Version 1.4 (2008/07/23)
Version 1.3
  • fixed bug with subdirectories creation
Version 1.2

Labels:

plugin-upload plugin-upload Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Feb 15, 2008

    Anonymous says:

    Can you access other job's lastSuccessful?  I want to create a new schedule...

    Can you access other job's lastSuccessful?  I want to create a new scheduled job that grabs the last successful build artifact of a particular job.  Is this possible?

    1. Apr 24, 2008

      Bartek Zdanowski says:

      Nope, you cannot. I spent some time debbuging SCP Plugin. You cannot access file...

      Nope, you cannot. I spent some time debbuging SCP Plugin. You cannot access files outside workspace. I need version that allows it and maybe I'll fix it and put new plugin somewhere. Or Ramil will do it?

  2. Jun 24, 2008

    Trond Andersen says:

    Does this plugin work on Windows with Cygwin installed? If so - this should prob...

    Does this plugin work on Windows with Cygwin installed? If so - this should probably be mentioned on this Confluence page.

  3. Aug 22, 2008

    Luke Alford says:

    If you only have a single artifact you want to copy somewhere, are there any tho...

    If you only have a single artifact you want to copy somewhere, are there any thoughts to adding the ability to rename said artifact?  Near as I can tell, the destination only allows a relative directory path and there's no way to include a new file name.  This would be a very useful feature to me since I am using this tool to copy an artifact that has a version number in the file name (for QA and production) as well as for my development automated testing tool that would like to be version agnostic (so I don't have to change the automated tester every time the artifact version changes).

    I'm thinking something like the following, but I haven't grabbed the source yet to find out what might be involved in doing this.

    artifact name = product-1.0.ear

    source: workspace/build/artifacts/*

    destination: qa/product/1.0/product-1.0.ear

    destination: dev/product/trunk/product-trunk.ear

    (where product-*.ear is the file name, not a folder)

    1. Jun 09

      Adam Burnett says:

      I second this request.

      I second this request.

  4. Sep 02, 2008

    Hakan ERDOĞAN says:

    This plugin is very useful, it runs on a free-style software project but fails o...

    This plugin is very useful, it runs on a free-style software project but fails on a maven project.

    Actually it never tries to run on a maven project, no log, no process.

    Is there a solution for this?

  5. Jan 05, 2009

    Peter Kahn says:

    The add files option doesn't seem to provide fields for me to enter data.  ...

    The add files option doesn't seem to provide fields for me to enter data.  I have tried this on Firfox/IE and Chrome.  Is there example xml for the config.xml so I can sneak passed this?

    1. Jan 05, 2009

      Peter Kahn says:

      Never mind, it was a configuration problem.  I installed the latest plugin ...

      Never mind, it was a configuration problem.  I installed the latest plugin prior to upgrading hudson.  This made hudson incapable of editing the build configuration at all. All was fine after doing this:

      • upgrade hudson
      • disabled and re-enable plugin
  6. Jun 20, 2009

    Reiner Saddey says:

    I'm impressed, it's working like a charm! Still, I'd like to propose an enhancem...

    I'm impressed, it's working like a charm! Still, I'd like to propose an enhancement:

    I'd wish for an additional id field, so multiple destinations (i.e. repository paths and logins) can be set-up for the same host.

    Right now, the hostname field serves two purposes:
    1. Designate the FQDN (DSN-name or IP) of the target-host
    2. State the name for a set of repository settings (i.e. port, repository path, user, password, etc.)

    I have to admit that I don't use the SCP plugin to copy to a repository at all. Instead build artifacts are being copied to (Apache-) www-folders so they can then be downloaded and installed (.jads and .jars in my case). That's fine for a single target (i.e. repository), but appears to fail if there are numerous target directories (and each of them requiring a different login).

    Should I a dare to open an enhancement issue?

  7. Jun 24, 2009

    Sterling Heibeck says:

    I've got everything working brilliantly with this plugin except that it won't cr...

    I've got everything working brilliantly with this plugin except that it won't create subdirectories in the Source root Has anyone found a solution to this?

  8. Jul 21, 2009

    Dan Morrow says:

    I'm trying to recursively copy over a directory from one location to another usi...

    I'm trying to recursively copy over a directory from one location to another using the SCP plugin, and can't figure out how to do it with the Ant glob syntax.

    Previously, I had a shell script that would do this:

    scp -r $localFile $username@$remoteHostIP:$remoteDestDir

    This would do a full recursive copy from "localFile" (really, local-dir) to the remoteDestDir location. I don't know how to specify this with the SCP plugin. I guess I could go back to running the shell script, or have several SCP calls that copy each sub-directory over, but that seems weird.

    Any idea how I might do this?
    -Dan.

  9. Dec 03, 2009

    Shannon Qian says:

    Report an issue - SCP plug-in does not support concurrent SCP sessions. As Huds...

    Report an issue - SCP plug-in does not support concurrent SCP sessions.

    As Hudson support multi-executor within one slave. it means scp stands chance of being invoked simultaneously by more than one job. I am encounted to such a requirement that success of job-0 triggers job-1 and job-2, both of which employ scp as post-build action. They failed scp simultaneously. but They do succeed separately.

    I am willing to study your source codes. but I can not connect to https://svn.dev.java.net/svn/hudson/trunk/hudson/plugins/scp and I don't know why. can anyone give my a copy?

  10. Mar 03

    Praveen Atluri says:

    I am using this plugin in a maven project. It is working Excellent but Is there ...

    I am using this plugin in a maven project. It is working Excellent but Is there any option to run this plugin before running M2 extra build steps plugin.

  11. Mar 05

    Brent De Vela says:

    Hi, I am a bit new to this plugin and I want to use the "key" authentication. Ho...

    Hi, I am a bit new to this plugin and I want to use the "key" authentication. How do I specify the key file or where do I put it? I tried using a url but it doesn't seem to work.

  12. Mar 19

    Andrei Pozolotin says:

    Hi, does this plugin has a log? where? I keep getting "Can't connect to server" ...

    Hi, does this plugin has a log? where? I keep getting "Can't connect to server" for all external sites; hudson scp config page test can connect only to localhost; I also verified that I can connect to all these other sites with normal ssh client OK. Thank you.

    [SOLVED] in this case I needed to provide following line  in sshd_config: PasswordAuthentication yes
    despite this presumably being the default setting on this freebsd box and also working fine for manual logins. Cheers.

  13. Mar 30

    Arturo says:

    I have 2 question for the plugin developers. 1.This pluging appears in the last...

    I have 2 question for the plugin developers.

    1.This pluging appears in the last section of the project's configuration form and I need it to run it before a shell

    script using shh pluging. Is it a way to change the order in which this pluging runs regards to others.

    2. Right now is only possible to choose one site peer project.  Is it a way to include the option to add more sites

    to upload to in the same project?.

    1. Apr 25

      barak yaish says:

      Facing the same problem - how can one determine the order of plugin runs? Is the...

      Facing the same problem - how can one determine the order of plugin runs? Is there an open ticket for that?

      Thanks.

  14. Apr 28

    Jay Sellers says:

    "Can't connect to server" Hudson is running as a war in glassfish, started by th...

    "Can't connect to server"
    Hudson is running as a war in glassfish, started by the user "glassfish".
    I'm getting this error but can't determine why. When in cli on the box in which hudson is running, I can execute:
    scp testFile root@remotebox:/tmp/
    as the glassfish user and it works fine.

    But when I try to add "remotebox" as an SCP host in hudson, I get "Can't connect to server".
    I tried the fix above, editing sshd_config for PasswordAuthentication yes but it didn't seem to help.

    Any other ideas?

  15. Jul 28

    littlefatbird says:

    Help me, help me, please help me, who can tell me what happened as below message...

    Help me, help me, please help me, who can tell me what happened as below message...

  16. Aug 12

    Andrei Pozolotin says:

    COPY AND KEEP THE TREE? currently, if you have on source: dir1/dir2/dir3 and ...

    COPY AND KEEP THE TREE?

    currently, if you have on source:

    dir1/dir2/dir3

    and you specify:

    source: "dir1/**"
    
    destination "dir"

    then all contents of all folders on the source "dir1/dir2/dir3" will be flattened (merge+overwrite) inside destination "dir";

    how can you copy and preserve directory tree?

  17. Aug 30

    Gabriel Baez says:

    Nice  plugin,  it would be great if it allowed you to select two diffe...

    Nice  plugin,  it would be great if it allowed you to select two different repository   to  upload to.