Child pages
  • ArtifactDeployer Plugin
Skip to end of metadata
Go to start of metadata

Plugin Information

View Artifact Deployer on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin is up for adoption. Want to help improve this plugin? Click here to learn more!

This plugin makes it possible to copy artifacts to remote locations.

History and Objectives

By default, Jenkins archives artifacts generated by the build. These artifacts are stored in the JENKINS_HOME directory with all other elements such as job configuration files.
There is no separation between infrastructure elements, project elements and outputs.
It is often considered to be a bad practice and it doesn't help to manage JENKINS_HOME directory from an administrator point of view (backup issues, etc).
And for now, we can't change the 'Archived artifacts' location.

ArtifactDeployer plugin enables you to archive build artifacts to any remote locations such as to a separate file server (outside of JENKINS_HOME directory).

There are many other Jenkins plugins close to ArtifactDeployer such as CopyArtifact plugin or CopyArchiver plugin for publishing artifacts from Jenkins resources (from the current workspace, from the old builds of the same job or other jobs, ...) to remote locations with the protocol file://
There are also others plugins for managing other protocols such as ftp://, ssh:///.

But none of these plugins provides a common way to manage the deployment.

ArtifactDeployer is a complete alternative to the built-in Jenkins feature "Archiving artefacts' and it is aimed at providing an uniform deployment mechanism.

Features

  • Copies build artifacts from the workspace to a remote location shared on the build processor node
  • Provides links to archived artefacts from the job status page
  • Deletes on demand archived artifacts when the build is removed

Limitations

  • Only file deployment is supported
  • For downloading deployed artifacts, remote location must be accessible from the Jenkins master
  • Jenkins process must have the right permissions to write in the specified location

Changelog

Release 1.2

* Fix SECURITY-294 - Rips out the ability to execute a Groovy script with this plugin

Release 0.33

* Fix deployed item ID when there is multiple ArtifactDeployer step

Release 0.32

* Fix JENKINS-24140 - ArtifactDeployer migration breaks lazy-load on Jenkins initialization

Release 0.31

* Fix JENKINS-16130 - Provide folder links on build results page to condense long file paths
* Fix JENKINS-14681 - Constrain the list of artifacts deployed

Release 0.30

* Fix typo in help file.

Release 0.29

* Additional help text

Release 0.28

* Fix JENKINS-18135 - Conditional Build Step plugin crashes when using Artifact Deployer plugin as build step

Release 0.27

* Fix NullPointterException

Release 0.26

* Fix JENKINS-16031 - Lost deployed artifacts after restart

Release 0.25

* Fix JENKINS-15709 - ArtifactDeployer does not appear in Flexible Publish

Release 0.24

* Fix JENKINS-15354 - Add option to fail the build if specified "Files to deploy" do not exist

Release 0.23

* Fix JENKINS-15059 - recursive deletion of deployment pathes not working correctly

Release 0.22

* Fix JENKINS-15058 - Setting for GroovyScript is not permanent

Release 0.21

* Fix JENKINS-14547 - Null pointer exception when using groovy script

Release 0.20

* Fix JENKINS-14548 - help for groovy script usage is never displayed

Release 0.19

* Fix JENKINS-13841 - "Base folder" for deploying the artifacty from source folder to remote directory

Release 0.18

* Fix JENKINS-13937 - ArtifactDeployer 0.16 messes the filenames for Windows filesystems

Release 0.17

* Fix NullPointerException on artifact deletion

Release 0.16

* Fix JENKINS-12311 - Display the Deployed Artifacts in a tree structure similar to how they are displayed under the Build Artifacts section

Release 0.15

* Fix JENKINS-11867 - Deployed files have a different time with original files.

Release 0.14

* Fix JENKINS-12522 - Deploy artifacts for failed builds, too

Release 0.13

* Fix JENKINS-11640 - Can't copy on remote windows slave

Release 0.12

* Fix partially JENKINS-9996 - Have the possibility to change the user and group ACL's on artifacts (Conserve file permissions to copy).

Release 0.11

* Fixed NullPointerException when the remote directory value is not set (for the ArtifactDeployer publisher and for the ArtifactDeployer builder).

Release 0.10

* Make it compatible to LTS series (1.409.x)
* Complete fix JENKINS-10360 - Added support of Matrix project

Release 0.9

* Fix partially JENKINS-10360 - Added support of Maven project

Release 0.8

* Fix slave execution

Release 0.7

* Fix bug on deletion
* The deployed artifacts in the Jenkins dashboard are now sorted.

Release 0.6

* Fix a ClassCastException (for more than one entry) on save configuration

Release 0.5

* Integrated a pull request - Fixed a NullPointerException

Release 0.4

* Add 'deployment artifacts' as a a build step (builder item) in addition to publishers.
Use Case: In the same job as build steps: Build your artifacts, deploy them in remote locations (as servers) and launch the integration tests.

Release 0.3

* Add a checkbox for deleting remote artifacts when the build is deleted.

Release 0.2

* The plugins enables users to call a Groovy script when the builds are deleted (for manual and automatic deletion).

Release 0.1

* Initial release
Only the filesystem protocol is available

54 Comments

  1. I am getting the following error when I run this on a node and deploy to the same node.

    Node = qa-w7p06

    Files to deploy = **

    Remote Directory = \\qa-w7p06\e\Workspace

    I do not receive any error when I deploy to jenkins master and a folder on the master machine.14:31:44 At revision 436

    14:31:44 WARNING: clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior.
    14:31:44 ArtifactDeployer - Starting deployment...
    14:31:44 FATAL: remote file operation failed: e:\Jenkins\workspace\Subversion qa-w7p06 at hudson.remoting.Channel@35da365c:qa-w7p06
    14:31:44 hudson.util.IOException2: remote file operation failed: e:\Jenkins\workspace\Subversion qa-w7p06 at hudson.remoting.Channel@35da365c:qa-w7p06
    14:31:44 at hudson.FilePath.act(FilePath.java:754)
    14:31:44 at hudson.FilePath.act(FilePath.java:740)
    14:31:44 at org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder.processDeployment(ArtifactDeployerBuilder.java:87)
    14:31:44 at org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder.perform(ArtifactDeployerBuilder.java:47)
    14:31:44 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    14:31:44 at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
    14:31:44 at hudson.model.Build$RunnerImpl.build(Build.java:178)
    14:31:44 at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
    14:31:44 at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:448)
    14:31:44 at hudson.model.Run.run(Run.java:1376)
    14:31:44 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    14:31:44 at hudson.model.ResourceController.execute(ResourceController.java:88)
    14:31:44 at hudson.model.Executor.run(Executor.java:230)
    14:31:44 Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@7993c1cd
    14:31:44 at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
    14:31:44 at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
    14:31:44 at hudson.remoting.Channel.call(Channel.java:667)
    14:31:44 at hudson.FilePath.act(FilePath.java:747)
    14:31:44 ... 12 more
    14:31:44 Caused by: java.io.NotSerializableException: org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder
    14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
    14:31:44 at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    14:31:44 at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    14:31:44 at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    14:31:44 at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    14:31:44 at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    14:31:44 at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    14:31:44 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
    14:31:44 at hudson.remoting.UserRequest._serialize(UserRequest.java:155)
    14:31:44 at hudson.remoting.UserRequest.serialize(UserRequest.java:164)
    14:31:44 ... 15 more

  2. Here is another example.

    It copies fine to hqapp03 (this is the master jenkins node).

    I get error trying to copy to qa-w7p06.

    15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\SuiteTest_init_.txt

    15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\Resources
    15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\Resources\eCounselObjectLib.TXT
    15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\test1.txt
    15:15:08 A branches
    15:15:08 At revision 441

    15:15:08 ArtifactDeployer - Starting deployment...

    15:15:23 ArtifactDeployer - 189 file(s) have been copied from the workspace to '\\hqapp03\e$\Workspace'.
    15:15:23 ArtifactDeployer - Stopping deployment...
    15:15:23 ArtifactDeployer - Starting deployment...
    15:15:23 ArtifactDeployer - Failed to deploy Can't create the directory '\\qa-w7p06\e$\Workspace'
    15:15:23 Build step 'Deploy artifacts from workspace to remote directories' changed build result to FAILURE
    15:15:23 Build step 'Deploy artifacts from workspace to remote directories' marked build as failure
    15:15:24 Finished: FAILURE

    1. Try the version 0.8.
      If the problem still occurs, please could raise an issue.

  3. Hi,

    Silly question, but I can't find the obvious answer:

    I've specified the following:

    Files to deploy distribution/target/distribution-0.0.1-SNAPSHOT-bin/cdInstallation/**

    Remote directory \\some-server\Staging\some-directory\CD-Installation-$BUILD_ID

    Which works great, however, in my remote directory, I have to complete path specified in files to deploy.  I really want ** to be in the root of CD-Installation-$BUILD_ID and not nested 4 directories down.
    Any easy solution for this?

    Secondly, what is the best practice using Jenkins to cull these folders so that there are at most 3 copied folders?  i.e. the older folder is removed (I realize this is probably outside the scope of the ArtifactDeployer Plugin).

    Thanks!

    1. Avoiding nested directories can be done by checking flatten option in the advanced section.
      Additionally, there is an option to delete remote parent directory before a deployment.

      1. Thanks for the response.  Two observations:

        1. Flatten option does remove the extraneous folders, however it does also do exactly what the tool tip says, it essentially puts all artifacts in that root folder.  I'm looking for the first without the second.

        2. The clean-up remote directory before deployment option doesn't appear to fit the bill here since I'm using $BUILD_ID as part of the remote directory path.  It seems to me that I would have to make my "Files to deploy" path vary in order for this option to work.  This is weird I guess because I shouldn't have to modify my maven assembly descriptor for a varying remote copy path.

        Thanks.

        1. I agree, it would be useful if we could map the directory structure of the archived files to a different structure in the deployed location.

          It would be nice if we could just specify the base directory from where to copy, rather than always copying from the root of the workspace

  4. Is this plugin able to upload files over http?

    1. Not yet, this feature is in the roadmap.

  5. Does the plugin support copying artifacts after a failed build?

    My Jenkins job has the following build steps:

    1. Execute Windows batch command (a set of simple commands terminated by an 'exit X' statement, where X can be zero for successful builds and non-zero for failed builds)

    2. Deploy artifacts from workspace to remote directories

    If the exit statement at the end of my batch commands is non-zero then the artifacts are NOT deployed. I would like to be able to deploy artifacts following a failed build because although the build failed there will be build log files indicating the reason for failure as well as partial artifacts.

    Thanks.

    1. Thanks for your request.
      Could you create an enhancement in the Jenkins issue tracker for the component 'artifactdeployer'?

  6. It would be really useful to have a way to chop off some "root" dir levels from the path getting copied.

    I'll explain: our build assembles an image of the the installation files&dirs and puts them in a subdir of the artifacts called publish. All dir levels leading to it are "workspace stuff" and should not be deployed.

    Example:
    Files to deploy: path/to/publish/**/*
    Remote directory: \\UNC\PATH\TO\DISTRIBUTION\DIR

    At the moment, if publish contains some/dir, the above will create
    \\UNC\PATH\TO\DISTRIBUTION\DIR\path\to\publish\some\dir
    Whereas I'd need
    \\UNC\PATH\TO\DISTRIBUTION\DIR\some\dir
    i.e. contents of publish copied into \\UNC\PATH\TO\DISTRIBUTION\DIR, while preserving the structure below publish.

    0.13 does not support this, right?

    1. Do you have activated the flatten option in advanced section?

    2. I have similar issue, but could not solve it. I have all the artifacts in a directory Output. I need to copy only the subdirectories under Output but not the Output directory. source = Output/xy/.* and in destination /xyz/.*

      But if give the option files to archive as , Output//* it also copies the Output directory. How can I only copy everything under Output but not Output directory?

  7. It looks like the deployed artifacts are always presented in a flattened format on the Jenkins job/build page. Is this as-designed or a bug ? I'd like to see them in a tree structure (similar to the normal Build Artifacts section). As you can see in the screenshot, I have two files with the same name, but only one shows under Deployed Artifacts.

     

    Thanks,
    Chris

    1. Thanks for your feedback.
      It is the current behavior.
      Please your raise an enhancement in the Jenkins issue tracker?

  8. I've just started using Jenkins along with this plugin.  I can successfully build a test application and use the built-in archiving, but when I try to use the ArtifactDeployer, I get the following error.

    Archiving artifacts
    [ArtifactDeployer] - Starting deployment from the post-action ...
    [ArtifactDeployer] - [ERROR] - Failed to deploy. Can't create the directory '\\aries\Engineering\Functional\Software\Users\DanO\Test01'
    [ArtifactDeployer] - [ERROR] - Failed to mkdirs: \\aries\Engineering\Functional\Software\Users\DanO\Test01
    Build step '[ArtifactDeployer] - Deploy artifacts from workspace to remote directories' changed build result to FAILURE Build step '[ArtifactDeployer] - Deploy artifacts from workspace to remote directories' marked build as failure

    I am able to successfully manually execute mkdir from the Jenkins server as follows:

    C:\.jenkins\jobs\TestBuild01\workspace>mkdir \\aries\Engineering\Functional\Software\Users\DanO\Test01

    I tried mapping to a drive letter, but that didn't help.  It was able to get it to work when I used a local directory (C:\Test01), but of course that defeats the purpose.

    Any ideas?

    Thanks.

    1. Is Jenkins running as a different user account than you are logged on with ?

      1. I'm not sure.  I'm trying to figure that out right now.

        Jenkins is running in Tomcat.  I installed both Tomcat and Jenkins while logged into the server as myself.  Maybe I need to look at the Tomcat account permissions?  (I don't remember the details of how I configured that.)

  9. It should be clarified which protocols are supported (SMB? SSH? FTP? SFTP?...). The plugin help should tell that along with an example.

    Additionally it would be great for the plugin to check write access during the job configuration.

    1. At the moment, only file protocol is supported.
      Regarding the write access check, please give me more information.

  10. Hi, I installed the plugin. I click on Add button but nothing happens. I tried different browsers. What am I doing wrong ? Thanks

    1. Strange behavior.
      Do you have installed the last version?

      1. Yes  I think I have the latest version installed, 0.19 ? But I was able to add it from'Build Step' instead of 'Post Build Action' . Then once added from 'Build Step', I can then add it from 'Post Build Action' . Surprising. But it is working now. Thanks

        1. I experienced exactly the same behavior.  Strange.

          1. I am experiencing a similar problem with Jenkins 1.475 and ArtifactDeployer plugin 0.19. I click on 'Add' button and nothing happens. This is from 'Post Build Action'. I don't see an option to add this from 'Build Step'.

            Also, I am adding this to a multi-configuration job.

            Am I missing something here ? Thanks

            1. The last version of ArtifactDeployer was built for Jenkins 1.424 and all is fine.
              I tested with Jenkins 1.475 and you're right, you can't add new elements from post-actions for ArtifactDeployer plugin.
              I will investigate on this issue.

            2. I tested with the latest LTS (Long Time Support) 1.466.1 and the plugin still works.
              Therefore it is an issue wthin a recent version of Jenkins.
              I don't know for now the real problem.
              Waiting for more investigation and a solution, I strongly suggest you should use a "stable" version of Jenkins: LTS

  11. Hello,

    I wanted to ask if i can (or how could i) execute a custom task after the archiving of artifacts (cleaning up the workspace)

    Thank you

    1. You are able to use the ArtifactDeployer as a post action, but also as a build step.
      Combining the two possibilities is also possible.
      For your use case, using Artifactdeployer as a build step is the best solution. Then, you are able to execute a custom step (from a shell script/batch file or from other steps provided by plugins)

  12. I have master and slave nodes on two different machines. Build goes on slave. I use "c:\soft" folder as shared directory. Plugin aggregates artifacts to slave`s "c:\soft" folder.

    Expected behaviour is aggregatting artifacts to master`s "c:\soft" folder, I think.

    It is CopyArchiver`s behavior, at least.

    1. With ArtifactDeployer Jenkins plugin, artifacts are deployed during the build job.
      This build is executed on a node (master or a slave).
      Therefore if the build is deployed on a slave, artifacts are deployed from the master and the information provided are relative from the slave machine.
      Do you want to add a new option to use information relative to master?

      1. If build is running on slave, does ArtifactDeployer fail when the master is intentionally set to "0" executors?  I do not want any job to run on master.

        I have a job starts failing after the change.ArtifactDeployer - Starting deployment from the post-action ...
        ArtifactDeployer - ERROR - Failed to deploy. Error on copying file.
        ArtifactDeployer - ERROR - Failed to copy /data/jenkins/workspace/PA-Master/pa-2013-07-16_00-31-03-NUM158.bin to /auto/mwc/analytics/pa-1_0/nightly-builds/pa-2013-07-16_00-31-03-NUM158.bin due to Input/output error
        Build step 'ArtifactDeployer - Deploy artifacts from workspace to remote directories' changed build result to FAILURE
        Build step 'ArtifactDeployer - Deploy artifacts from workspace to remote directories' marked build as failureThanks.

        -Indra 

  13. On the project and build pages, a list of URL(s) is displayed for each deployed artifact.  From the source code:

    src/main/resources/org/jenkinsci/plugins/artifactdeployer/DeployedArtifacts/summary.jelly:
    
    <a href="deployedArtifacts/download/artifact.${artifact.id}/">${h.escape(artifact.remotePath)}</a>
    
    src/main/resources/org/jenkinsci/plugins/artifactdeployer/ArtifactDeployerProjectAction/jobMain.jelly:
    
    <a href="${lastSuccessfulNumber}/deployedArtifacts/download/artifact.${artifact.id}/">
    

    Isn't the URL on the Jenkins master at .../deployedArtifacts/download/... always invalid?  What is the purpose?  It seems that users will click on this can get confused by the HTTP 404 error.

    Thanks!

  14. Has anyone used this plugin to upload their artifacts to a maven repository??? ... Currently my builds are NOT mavenized...  If they have used this plugin to upload their artifacts to a maven repository, how did you do it? Thanks !!!

    1. At the moment, ArtifactDeployer enables you to deploy your build artifacts to file remote directories.
      If your Maven repository is accessible from the file:// protocol, ArtifactDeployer can meet your needs. However, no Maven metadata are generated.

      For remote Maven repositories accessible though the HTTP protocol, ArtifactDeployer doesn't meet at the moment to the feature.

  15. Just fyi that I entered a bug - JENKINS-17494 Copy Artifact fails when trying to copy artifact stored by ArtifactDeployer

    https://issues.jenkins-ci.org/browse/JENKINS-17494

  16. Hi,

    Does this plugin copy the artifacts locally on to the build server or any remote server(not a node of the jenkins setup). This is how my configuration looks like but it copies the artifacts by creating a local folder inside jenkins home path(I have jenkins running on a solaris box):

    Files to deploy : build/.war*

    Remote Directory : \\<remote_server_ip\\c$\builds

    This created a folder \\<remote_server_ip\\c$\builds\ on the jenkins solaris box home path and copied all the war files into it following the build which is something I wasn't expecting. Please not that my remove directory is on a windows server.

    Thanks

  17. I have an issue when I try to add a "ArtifactoryDeployer" build step in a "Conditional Step (multiple)". When I save the modification, I have a java exception, see below.
    There is no issue when I add this "ArtifactoryDeployer" build step in a "Conditional Step (single)" ! Any Idea ?

     javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder from {"":["15","0"],"runCondition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.logic.And","conditions":[{"":"2","condition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.core.BooleanCondition","token":"${ENV, var=\"GAME_MARKET_amazon\"}"}},{"":"2","condition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.core.BooleanCondition","token":"${ENV, var=\"GAME_ENVIR_prod\"}"}}]},"runner":{"stapler-class":"org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail"},"conditionalbuilders":[{"command":"echo Hello","stapler-class":"hudson.tasks.BatchFile","kind":"hudson.tasks.BatchFile"},{"msBuildName":"MSBuild .Net 4.0","msBuildFile":"${WORKSPACE}/Test/Build/Test.sln","cmdLineArgs":"/p:Platform=Android /verbosity:detailed /p:Configuration=${CONFIGURATION}","buildVariablesAsProperties":false,"continueOnBuildFailure":false,"stapler-class":"hudson.plugins.msbuild.MsBuildBuilder","kind":"hudson.plugins.msbuild.MsBuildBuilder"},{"deployedArtifact":{"includes":"**/*","basedir":"","remote":"${BUILD_ID}","excludes":"","flatten":false,"failNoFilesDeploy":false,"deleteRemote":false,"deleteRemoteArtifacts":false},"deployEvenBuildFail":false,"stapler-class":"org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerPublisher","kind":"org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerPublisher"}],"stapler-class":"org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder","kind":"org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder"}
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:719)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
    	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
    	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
    	at org.kohsuke.stapler.Stapler.service(Stapler.java:214)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    	at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
    	at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
    	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
    	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
    	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
    	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
    	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
    	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
    	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    	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:124)
    	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:174)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
    	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 winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    	at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
    	at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
    	at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:662)&nbsp;
    
    
    1. I'm sorry I don't know.
      I suggest asking to the conditional step plugin. Maybe they have a suggestion

  18. Good day,

         I'm using the AD plugin to successfully deploy our artifcacts to a NAS drive no problem.  However, I've enabled the "Delete remote artifacts when the build is deleted" checkbox yet the remotes are not being deleted when the build is deleted.  It's a fairly simple test case having just configured Jenkins to only keep 3 builds (using Discard Old Builds).  I thought I had it in that the NAS share was not mounted to the same path on the Jenkins ci server as the nodes but that doesn't seem to be it.

    I'm not even sure where to begin to look what may be happening here as there's nothing in the logs indicating it's even trying to remove the remotes:ArtifactDeployer - Starting deployment from the post-action ...
    ArtifactDeployer - 225 file(s) have been copied from the '/var/lib/jenkins-devops-testing/workspace/My Test Project-trunk/test_project/dist' to '/var/lib/jenkins-devops-testing/Test_Releases/Jenkins_Test/Product_Family/test_project/trunk/Build-50'.
    ArtifactDeployer - Stopping deployment from the post-action...

    Any pointers for where to look would be appreciated.

    Cheers

    Dave

  19. how about some real documentation about this plugin? I don't want to install it just to see it and to know if it fits my need...

  20. Firstly, thank you for an excellent plugin! It is vital to my use of Jenkins at the moment!

    I am seeing some problems with the URLs of the deployed artefacts and have create a simple project to re-create it.

    It seems that when using multiple plugin "instances" in a project, with multiple artefact wildcards for each, the resulting URLs son't match the actual artifacts and some occur more then once. This may be because I am abusing the capacity of the plugin but I have about 500 files to deploy in multiple directories.

    If I use the same strategy but limit myself to a single wildcard entry per plugin "instance" the problem goes away.

    Here is my simple projct that recreates the problem. I have tried it with versions 0.32 and 0.31

    config.xml

    Here is the same functionnality but defined in a way that works:

    config.xml

    Thank you again for everything!

  21. We rely on this plugin so thank you very much for your efforts. It hasn't worked for us for about a month or so of updates to Jenkins so we rolled back and are holding. Are you still working on this? I'd try to help, but I'm a .NET developer and don't know much about Java.

  22. Thank you very much for the plug-in. It is indispensable. 

    This might be an unusual question. But I need to remove the deployed artifacts link from the Jenkins page or restrict access to the users ( basic idea is that not everybody that calls the build should be able to access the files deployed from the webpage ) . Preferably remove links completely. Any suggestions? 

  23. It looks like this plugin is no longer developed. Or am I wrong?

  24. Is there a way to exclude files? I use ***.* to copy a list of dlls from the \bin folder, but now want to exclude some of them. For now, I have delete them after the copy.

  25. This is a useful plugin but I cant find it under jenkins available plugins!

    Is it removed from central plugin repository? If yes, is it possible to get .hpi file for this plugin? 

  26. This page list versions up to version 0.33, although version 1.2 has been released.
    The security vulnerabilites prevent users to download this plugin, although they have been fixed in 1.2.

    Please could you update related information or give the entry point to update this information ?
    (I will publish a post on the developer list)