CIFS-Publisher Plugin

Plugin Information

Plugin ID cifs
Latest Release 1.1.10
Latest Release Date Jan 06, 2011
Plugin Central Plugin Central 3.2
Sources Github
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla
Hudson Core (latest) 3.3.3

This plugin uploads build artifacts to repository sites using CIFS (SMB) protocol. First you should define CIFS shares in the Hudson global configuration page. After that you can refer to the shares using a select list in your project configuration. See picture for global config:

Development moved to Jenkins

The author of this plugin has announced that he will not be making further bug fixes for this plugin in Hudson.

The latest information can now be found on the Jenkins wiki:
http://wiki.jenkins-ci.org/display/JENKINS/CIFS-Publisher+Plugin

The CIFS share must exist before you can reference it and should be accessible by user who is publishing the files.


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 share root path.
You can define multiple blocks of source/destination pairs.

Change Log

Version 1.1.10
  • Incorporated patch for allowing flattening of directory structure per job and per file mask.
  • Moved plugin to GitHub
Version 1.1.4
  • Fixed issue with winsServer parameter
  • Fixed issue with share directory not being used when the artifact is actually copied to the share
Version 1.1
  • Fixed a few items in the pom so they showed up correctly on the wiki
Version 1.0
  • Initial release of plugin.

Labels:

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

    Shen Liu says:

    Great work! but i can not find it in my hudson pluginManager available list. Ho...

    Great work!

    but i can not find it in my hudson pluginManager available list. How can i install it?

    1. Jul 29, 2010

      Slide Earl says:

      I'll take a look into the issue, thanks for bringing it to my attention, I had o...

      I'll take a look into the issue, thanks for bringing it to my attention, I had only installed from HPI for my testing.

      1. Jul 31, 2010

        Slide Earl says:

        Previously, it looks like the CIFS plugin somehow got mixed up with the CVS plug...

        Previously, it looks like the CIFS plugin somehow got mixed up with the CVS plugin on the JSON page. It looks like it is fixed now and the CIFS plugin is available.

        1. Aug 01, 2010

          Shen Liu says:

          It's available. thank u

          It's available. thank u

  2. Aug 10, 2010

    Andrei Pozolotin says:

    PUBLISH from LINUX? Hello! I am trying to publish from fedora 10 to windo...

    PUBLISH from LINUX?

    Hello!

    I am trying to publish from fedora 10 to windows 2003;

    do I need to install any extra dependencies on linux?

    I am getting the exception below;

    thank you

    Andrei

    
    

    Error

    Failed to parse form data. Please report this problem as a bug

    net.sf.json.JSONException: JSONObject["winsServer"] not found.
    at net.sf.json.JSONObject.getString(JSONObject.java:1789)
    at com.slide.hudson.plugins.CIFSPublisher$DescriptorImpl.newInstance(CIFSPublisher.java:233)
    at com.slide.hudson.plugins.CIFSPublisher$DescriptorImpl.newInstance(CIFSPublisher.java:175)
    at hudson.util.DescribableList.rebuild(DescribableList.java:147)
    at hudson.maven.MavenModuleSet.submit(MavenModuleSet.java:719)
    at hudson.model.Job.doConfigSubmit(Job.java:1086)
    at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:555)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:259)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:126)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:65)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:79)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.MetaClass$7.doDispatch(MetaClass.java:219)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.MetaClass$7.doDispatch(MetaClass.java:219)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:450)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:636)

    1. Aug 10, 2010

      Slide Earl says:

      I'll take a look into this, I think I saw a similar issue with the most recent v...

      I'll take a look into this, I think I saw a similar issue with the most recent version of Hudson and the CIFS plugin. Could you open a sighting in JIRA please?

  3. Aug 10, 2010

    Andrei Pozolotin says:

    Slide, hello; thank you very much for looking into this; filed: http://issues...

    Slide, hello;

    thank you very much for looking into this;

    filed:

    http://issues.hudson-ci.org/browse/HUDSON-7173

    (could not find jira component "cifs" - filed under "plugin")

    cheers,

    Andrei

  4. Aug 12, 2010

    Andrei Pozolotin says:

    Slide, thank you for fixing this; you are the best! http://issues.hudson-c...

    Slide, thank you for fixing this; you are the best!

    http://issues.hudson-ci.org/browse/HUDSON-7173

  5. Aug 12, 2010

    Andrei Pozolotin says:

    To users of CIFS plugin: if you get this: ERROR: Failed to upload files jcifs....

    To users of CIFS plugin:

    if you get this:

    ERROR: Failed to upload files
    jcifs.smb.SmbException: The network name cannot be found.

    this can mean the following:

    • host not found
    • share not found
    • host/share access denied
    • invalid path specified in "Destination"

    specifically, if you try to use "/" in the "Destination" and hope that it would copy to the share root - it will not work;

    workaround: create a share above your destination folder;

  6. Aug 12, 2010

    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?

  7. Dec 11, 2010

    Luca Orlandi says:

    Hello, I'm facing this error Connecting to 10.10.13.19 Preparing to copy dir...

    Hello,
    I'm facing this error

    Connecting to 10.10.13.19
    Preparing to copy directory : /e:/hudson/workspace/xxxx/
    ERROR: Failed to upload files
    jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/10.10.13.19
    jcifs.util.transport.TransportException: Connection timeout

    the job is executed on a windows slave in the same network of the target 10.10.13.19 while the master if on a different network with a firewall in the middle (Master on public network, slaves within firewall).

    I can manually use
    10.10.13.19 shares from the slave.

    How can I diagnose the problem?
    Thsnk you.

    1. Dec 11, 2010

      Slide Earl says:

      Is Samba running on a different port on 10.10.13.19 by chance?

      Is Samba running on a different port on 10.10.13.19 by chance?

  8. Feb 09, 2011

    Alexis Denis says:

    Is there any ways to use environment variables in the file definition or in the ...

    Is there any ways to use environment variables in the file definition or in the destination definition? E.g. Build Archive\product\CI%BUILD_TAG%

    1. Feb 10, 2011

      Alexis Denis says:

      Never mind, the $BUILD_TAG syntax works like a charm.

      Never mind, the $BUILD_TAG syntax works like a charm.