Skip to end of metadata
Go to start of metadata

Plugin Information

View Copy Artifact on the plugin site for more information.

Adds a build step to copy artifacts from another project.The plugin lets you specify which build to copy artifacts from (e.g. the last successful/stable build, by build number, or by a build parameter). You can also control the copying process by filtering the files being copied, specifying a destination directory within the target project, etc. Click the help icon on each field to learn the details, such as selecting Maven or multiconfiguration projects or using build parameters. You can also copy from the workspace of the latest completed build of the source project, instead of its artifacts. All artifacts copied are automatically fingerprinted for you.

Pipeline syntax

Available since copyartifact-1.39

  • To copy artifacts from the latest stable build of "sourceproject"

    copyArtifacts(projectName: 'sourceproject');
  • To copy artifacts from the specific build of "downstream"

    def built = build('downstream');  // https://plugins.jenkins.io/pipeline-build-step
    copyArtifacts(projectName: 'downstream', selector: specific("${built.number}"));
  • Parameters of copyArtifacts

    parametertypedescription
    projectNamestringthe name of project (required)
    selectorBuildSelectorthe selector to select the build to copy from. If not specified, latest stable build is used.
    parametersstringcomma-separated name and value pairs (name1=value1,name2=value2) to filter the build to copy from.
    filterstringant-expression to filter artifacts to copy
    excludesstringant-expression to exclude artifacts to copy
    targetstringtarget directory to copy to
    flattenbooleanignore directory structures of artifacts
    optionalbooleando not fail the step even if no appropriate build is found.
    fingerprintArtifactsbooleanfingerprint artifacts to track builds using those artifacts. true for default
    resultVariableSuffixbooleanuseless for pipelines
  • selectors

    namefeature
    lastSuccessfulLatest successful build
    specificSpecific build
    permalinkSpecified by permalink
    lastCompletedcompleted build (ignoring build status)
    latestSavedBuildLatest saved build (marked "keep forever")
    buildParameterSpecified by a build parameter
    upstreamUpstream build that triggered this job

Configuration Notes

  • When using this plugin with a Windows slave node that is configured as a Windows service, the service should have permission to interact with desktop (select "Allow service to interact with desktop" from Jenkins Slave service properties). Otherwise you may see errors similar to this:

    ERROR: Failed to copy artifacts from ...
    hudson.util.IOException2: java.lang.IllegalAccessError: class hudson.remoting.Pipe$ConnectCommand cannot
      access its superclass hudson.remoting.Command
    at hudson.FilePath.copyRecursiveTo(FilePath.java:1526)
    at hudson.FilePath.copyRecursiveTo(FilePath.java:1451)
    at hudson.plugins.copyartifact.FilePathCopyMethod.copyAll(FilePathCopyMethod.java:51)
    ...

Permissions to copy artifact

When you face a following message and fail to copy artifacts, this may be caused by permission to the project with artifacts. Please read this section once.

Unable to find project for artifact copy: YOUR_PROJECT_WITH_ARTIFACTS
This may be due to incorrect project name or permission settings; see help for project name in job configuration.
Build step 'Copy artifacts from another project' marked build as failure

Specifying project statically (without variables)

  • This case:
  • In this case, you can copy artifacts if you have permission to read the project to copy from at configuration time.

Specifying project dynamically (with variables)

  • Those cases:

  • If your Jenkins is secured, it fails to copy artifacts without a proper configuration.
  • You need to allow projects copy artifacts in one of following ways:

Allow read from anonymous

  • Copyartifact plugin treats builds running as an anonymous.
  • Copying artifacts is allowed if the project with artifacts is readable from anonymous.
  • When you use Matrix-based security for authorization, it can be done as following in Manage Jenkins > Global Security Configuration:
  • When you use Project-based Matrix Authorization Strategy for authorization, it can be done as following in the configuration page of the project to copy artifacts from:

Specify projects who can copy artifacts

  • Available since Copyartifact 1.30
  • In the project configuration pages, you can specify projects to allow copy artifacts from that project:
  • You can specify multiple projects with separating with commas.
  • You can use wildcard character ('*') to specify name patterns.

Since Copyartifact 1.30, there is a limitation "Permission to Copy Artifacts" accepts only relative project names.
If you use CloudBees Folders Plugin and the projects are located in different folders, you need to specify project names like "../folder/project".
This is fixed in Copyartifact 1.31.

Authorize builds as a user

  • Available since Jenkins 1.532
    • To be exact, the feature of Jenkins to authorize builds are available since 1.520, but who cares such details?
  • Authorize Project plugin enables you to run builds of a project as a specific user.
    • Copyartifact plugin treats builds running as an anonymous without authorization configurations.
  • You can resolve permission problems by running builds as a user with read permission to the project with artifacts

 

Use with declarative pipelines

One example: 

stages {
    stage('Copy Archive') {
        steps {
            script {
                step ([$class: 'CopyArtifact',
                projectName: 'Create_archive',
                filter: "packages/infra*.zip",
                target: 'Infra']);
            }
        }
    }

What that is doing: 

  • Go to the project/workspace named "Create_archive".
  • Look in the folder "packages" for the file(s) "infra*.zip".
  • Copy that file(s) into the folder "Infra", in the local workspace.  Folder will be created if it doesn't already exist.

 

 


Issues

To report a bug or request an enhancement to this plugin please create a ticket in JIRA (you need to login or to sign up for an account). Also have a look on How to report an issue

Key T P Summary
Loading...
Refresh


Change Log

Version 1.40 (May 13, 2018)
  • Targets Jenkins 2.118

    • There're no LTS yet, please consider to use copyartifact-1.40-beta-1 if you use LTS.

      • Be careful that 1.40-beta-1 doesn't support the exclude filter.

  • ArtifactManager support (JENKINS-22637)
Version 1.40-beta-1 (Apr 29, 2018)
Version 1.39.1 (Apr 1, 2018)
  • Simple arguments for upstream selector (TriggeredBuildSelector)
Version 1.39 (Oct 29, 2017)
Version 1.38.1 (Jul 24, 2016)
  • Fixed: symlinks aren't created (JENKINS-32832)
    • It occurred when symlinks are placed in subdirectories.
  • Fixed: Empty variables aren't replaced to empty strings. (JENKINS-36554)
Version 1.38 (Apr 17, 2016)
Version 1.37 (Oct 4, 2015)
  • Added an option to 'Upstream build that triggered this job' to allow upstream dependencies (#73).
Version 1.36.1 (Nov 4, 2015)
  • Fixed problems with "Specified by a build parameter" (JENKINS-30357)
    • Fixed NPE when specified undefined variables.
    • Supports used in workflow jobs.
    • Also supports immediate value specification for used in workflow jobs (${SELECTOR} in workflow jobs).
    • Also supports variable expression (${SELECTOR} in non-workflow jobs).
Version 1.36 (Sep 6, 2015)
  • Introduced a field to specifi the suffix of the variable to store the build number. (JENKINS-18938, JENKINS-29812)
    • Added "Result variable suffix" in the "advanced" section.
    • It allows you to store the build number to the variable named "COPYARTIFACT_BUILD_NUMBER_(specified name)"
    • Copyartifact behaves as before (creates the suffix from the source project name) if you don't specified it. You don't need to reconfigure existing configurations.
Version 1.35.2 (Jul 4, 2015)
Version 1.35.1 (May 10, 2015)
Version 1.35 (Mar 1, 2015)
Version 1.34 (Jan 25, 2015)
Version 1.33 (Jan 17, 2015)
  • Added a new build selector "last completed build" (JENKINS-16476)
Version 1.32.1 (Oct 20, 2014)
  • Fixed NPE when used in promotions (Promoted Builds plugin) (JENKINS-25155).
Version 1.32 (Oct 12, 2014)
  • Added a new build selector "Downstream build of" (JENKINS-24626)
  • Fixed NPE on TriggeredBuildSelector when the upstream is removed. (JENKINS-18804)
  • Fixed COPYARTIFACT_BUILD_NUMBER_XXX not declared in some cases
  • TriggeredBuildSelector is now applicable also for maven module builds (JENKINS-14653)
Version 1.31 (Jul 21, 2014)
  • Supports absolute paths in CopyArtifactPermissionProperty. (JENKINS-22038)
  • Fixed input validation problem when used with Cloudbees Template and Cloudbees Folders plugin (JENKINS-22828)
  • Fixed: Promotion permalinks not offered when job name is parameterized (JENKINS-22590)
  • Fixed: Name of COPYARTIFACT_BUILD_NUMER_ variable is incorrectly documented (JENKINS-15764)
  • Fixed: Project source of a multi-config project inside a folder not working (JENKINS-20940)
  • Added a parameter to specify whether to copy from the newest upstream or the oldest one when triggered by multiple upstreams. (JENKINS-11655)
  • Fixed: Copying from workspace drops files matching Ant's default excludes (JENKINS-14900)
    • *Specify explicitly files matching Ant's default excludes with "Artifacts not to copy" if you need to exclude them.
  • Added exclude filter. (JENKINS-18662)
  • Fixed inproper help texts of filter. Copyartifact doesn't fail even specified files don't really exist. (JENKINS-23444)
Version 1.30 (Feb 16, 2014)
  • Added license information (MIT).
  • Fixed ClassNotFound when maven plugin not installed (JENKINS-15977)
  • Allow to specify named builds in Specific Build Selector (JENKINS-19693)
  • Job Property to define projects that can copy artifacts (JENKINS-20398)
  • Fixed startup failure without maven-plugin (JENKINS-21274)
Version 1.29 (Jan 29, 2014)
  • Support (mostly) absolute path for job name
    i.e. job name can be fully qualified but not start with "/"
    required for backward compatibility (JENKINS-19833)
  • The authorization of builds are considered (when used with QueueItemAuthenticator). QueueItemAuthenticator is available from Jenkins 1.520. (JENKINS-14999)
  • Make fingerprinting artifacts optional. By default the old behavior is preserved. (JENKINS-12134 and this serves as a workaround for JENKINS-17606).
Version 1.28 (Sep 23, 2013)
  • Supports ItemGroup (Cloudbees folders)
  • Added diagnostics log messages when using SpecificBuildSelector (related to JENKINS-18220)
  • Migrates configuration when upgraded from version 1.25 or earlier. (JENKINS-17680)
Version 1.27 (May 01, 2013)
  • NPE renaming job after 1.26 format change. (JENKINS-17447)
  • Optional Copy Artifact build step fails if no specific build's build number is given. (JENKINS-14266)
Version 1.26 (Mar 25, 2013)
  • Split filtering by build parameters into a separate configuration field, solving a security problem related to job configuration and upstream builds. Existing job configuration using this plugin will be rewritten if you run at least one build after the upgrade; if you immediately open the configuration page you will need to manually restore the upstream project field. (JENKINS-13222)
  • Gets artifacts from jobs higher in the upstream chain. (pull request #18)
Version 1.25 (Nov 06, 2012)
Version 1.24 (Oct 03, 2012)
  • Continued fix for the case of a Windows slave with Unix master. (JENKINS-13515)
Version 1.23 (Sep 21, 2012)
  • Failure on some Windows machines introduced in 1.22. (JENKINS-13515)
Version 1.22 (Apr 16, 2012)
  • Hierarchical project support.
Version 1.21 (Jan 12, 2012)
  • Revisited JENKINS-12134 implementation to hide the computation overhead to the actual copy operation.
Version 1.20 (Dec 16, 2011)
Version 1.19 (Nov 28, 2011)
  • Using "Upstream build which triggered" with "Last successfull" fallback uses last build as fallback and not last successful. (JENKINS-11828)
  • Improve a misleading error message. (JENKINS-10762)
  • Added hyperlinks to console output
  • Added german translation
Version 1.18 (Jul 24, 2011)
  • Copy only artifacts run for a particular matrix build (not those inherited from previous builds) in Jenkins 1.413+. (JENKINS-10214)
Version 1.17 (Jul 24, 2011)
  • Add support for multiconfiguration(matrix) projects with upstream build selector. (JENKINS-9729)
  • Add an option for upstream build selector to use last successful build when job is not triggered by upstream job. (JENKINS-10225)
  • Partial fix for JENKINS-9741 to preserve permissions on the copied artifacts when using the "flatten" option.
Version 1.16 (Apr 17, 2011)
  • Add build selector to select the upstream build that triggered this job. (JENKINS-8999)
  • Avoid NullPointerException triggered by Build Pipeline Plugin. (JENKINS-9359)
  • Allow filters in project name field to match all build variables, not just parameters. (JENKINS-9327)
    Compatibility Note: More variables are now matched, but values for boolean parameters must now be specified as true and false (previously yes/no, on/off and 1/0 were also accepted).
  • Make text field for project name wider. (JENKINS-9373)
  • Investigated permissions problem with using parameters to select a particular matrix configuration or maven module; this is fixed in Jenkins core 1.406. (JENKINS-9293)
Version 1.15 (Apr 11, 2011)
  • Add note in "project not found" console message that error may be due to permission settings as well as invalid name.
  • Removed workaround code for JENKINS-5977 now that minimum required Jenkins version for this plugin has that issue fixed.
  • Updates for Jenkins
Version 1.14 (Feb 24, 2011)
  • Rerelease 1.13 to properly set required Jenkins version.
Version 1.13 (Feb 10, 2011)
  • Prevent access to artifacts of private jobs. (JENKINS-8727)
    • For a fixed project name, check at save-config time and disallow use of jobs the current user cannot see.
    • For parameterized names, check at build time that the source job is accessible to all authenticated users.
  • Record build number of selected build into environment for later build steps to reference. More detail in help text for build selector. (JENKINS-8722)
  • Add support for filtering on build parameters, such as "latest stable build with parameter FOO=bar". More detail in help text for project name. (JENKINS-8657)
Version 1.12 (Jan 30, 2011)
  • Restore ability to copy artifacts from a maven project that were archived with a post-build step (instead of maven automatic archiving). (JENKINS-7752)
Version 1.11 (Nov 7, 2010)
  • Copy artifacts from all modules/configurations when a maven/matrix project is selected. (JENKINS-7752)
  • Add extension point for how files are copied from source to target, allowing other plugins to override default implementation using Jenkins' FilePath class. (JENKINS-7753)
  • Add note about limitation in copy-from-workspace feature. (JENKINS-7751)
Version 1.10 (Oct 10, 2010)
  • Add option to copy from workspace of latest completed build. (JENKINS-7130)
    Note: source and target jobs cannot both run on slave nodes; at least one must be on the master node.
  • Strip newlines in XML form of build selector parameters, to avoid breaking ant execution on windows. (JENKINS-7680)
Version 1.9 (Sep 28, 2010)
  • Now supports selecting a build based on its permalink, which allows this plugin to work nicely with the promoted builds plugin.
Version 1.8 (Jul 18, 2010)
  • Add parameter expansion in selecting a specific build number. (JENKINS-6972)
Version 1.7 (May 12, 2010)
  • Add support for using a build parameter to specify the BuildSelector used for copying artifacts.
Version 1.6 (May 8, 2010)
  • Make build environment available to BuildSelectors.
Version 1.5 (May 5, 2010)
  • Add Japanese localization.
Version 1.3 (May 2, 2010)
  • Add option to flatten directories when copying, so all artifacts from source project are copied directly into target directory. (JENKINS-6345)
  • Add option to make the copy optional, so build doesn't fail if build, workspace, or matching artifact is not found. This release changes the default behavior when build is found but no artifacts were copied (now a build failure, previously just reported "0 files copied").
  • Add some help text about copying artifacts from Maven modules. (JENKINS-6355)
Version 1.2 (Apr 17, 2010)
  • Add parameter expansion in name of project to copy from and add some help text about copying from matrix jobs. (JENKINS-6242)
  • Add extension point for how to select which build to copy artifacts from. Includes selectors for latest successful/stable build or latest saved ("keep forever") build.
    Other plugins known to implement this extension: Promoted Builds Simple Plugin
Version 1.1 (Mar 18, 2010)
Version 1.0 (Mar 7, 2010)
  • Initial release.

 

66 Comments

  1. Can you provide usage instructions for this plugin? Especially what syntax to use for complex environments like multi-configuration projects.

  2. The new version 1.5 also fails a build, if no artifacts were copied because all formerly copied artifacts were still there and up to date.

    1. oops, I'll mention that above.. the fix is already on the way..

  3. Unknown User (lepokle)

    Thank you for this very useful plugin!

    Just one question: Is it possible to select the project by build parameter, too? I have very large test data (> 10GB) and more than one configuration for building my binaries (e.g. Release jobs). If I can select the project by build parameter I would need only one test job (and not 10GB diskspace for every testjob ;-) )

    Thank you very much!

    1. Please file requests in the issue tracker.. they're easily forgotten here, thanks!

  4. Unknown User (mark@markwalling.org)

    If you are trying to copy automatically archived artifacts from a Maven build, you need to refer to the module as JOBNAME/MODULENAME.

    See http://issues.jenkins-ci.org/browse/JENKINS-6355 or the help for project name.

    Thought it would be worth mentioning here, since it took myself a bit of time to find it.

  5. Unknown User (rherrick@gmail.com)

    Is it possible to modify the pathing of the artifacts to be copied? I have a Flex build that puts its output into a target folder in the workspace, build/flex-build. Underneath that folder, there's some various Flex support files, framework libraries, our portal control, then some folders like com/ourcompany/project1, com/ourcompany/project2, etc. Each of the project1, project2 folders contains a number of Flex SWFs.

    When the Flex build completes, in the Post-build Actions, I check Archive the artifacts, then in the Files to archive box I put: build/flex-build/**. That ends up archiving everything in there properly, but it has the build/flex-build path at the beginning of it.

    The problem really bites me when I try to use copy artifact to copy these into my Java build. I have a web app with a /flex folder. What I really want is everything in build/flex-build to be copied into my flex folder. So for Artifacts to copy, I specify build/flex-build/*, then for *Target directory I specify the path to the flex folder in the Java build.

    But instead of getting the contents of the flex-build folder copied into the flex web app folder, what I get is the top-level build folder in the flex folder, meaning that all the stuff I want in /flex is actually two levels down.

    So is there any way to say I want to use these artifacts starting at this folder level? Or something like that?

    I think in the short-term I'm going to have to modify the build out folder for the Flex build, but if I'm missing something, please inform me!

    1. Sorry, I don't really follow.. if you specify a target directory, everything that is copied should be place inside that target. Please file an issue with specific steps if you think it's not doing this..

  6. Did you ever tried to copy a 50MB binary file? It fails every time:

    http://hudson.pastebin.com/e4cw49zg

    1. Try an older Hudson version until JENKINS-7745 is fixed.

  7. Unknown User (stijn)

    I really like this plugin, but cannot get it to work with matrix projects.. Tried all options but I always get 'copied 0 artifacts'.

    project A has axes x and y
    project B has the same axes

    Any pointers on this? Should I create an issue? It doesn't seem that hard to implement (at least, not when A and B have the same axes..)
    Right now I have to use the cumbersome

    wget http://server/job/dlls/lastSuccessfulBuild/configuration=%configuration%,platform=%platform%/artifact/*zip*/art.zip
    7za x art.zip
    copy archive_bin*.* _bin\
    rmdir /Q /S archive
    del art.zip

    1. Click on the help icon for the project name you're copying from.. it describes here how to select the particular matrix configuration to copy from, including the case for matrix-to-matrix with same axes (if you enter just the name for the matrix project, without a particular configuration, you'll always get 0 artifacts copied, as the parent has no artifacts.. there is work in progress to copy artifacts from ALL configurations in this case.. see JENKINS-7752).

      1. Unknown User (stijn)

        (bonks head on desk) that was the sole help icon I didn't click.. thanks, works great!

    2. I don't have a matrix project and I have the same problem. Here is what I get, this the complete console output:

      ------------------------------
      Started by user <UID>
      Building remotely on <Slave> in workspace c:\jenkins\workspace\<job-name>
      Copied 0 artifacts from <Job-name> build number <nnn>
      Finished: SUCCESS

      ----------

      If I uncheck the "flatten" option, the job finishes as Failed with exact same output.
      I'm copying an artifact from a job from linux on to a slave on windows 7.
      Any ideas on how to resolve this and get a file copied successfully?

  8. I want to use the Copy Artifact plugin in connection with the Promoted Builds plugin, but it seems like my use case isn't covered yet, or I miss something fundamental. The problem scenario is described in the following thread:

    http://hudson.361315.n4.nabble.com/How-to-promote-artifacts-of-a-previous-build-td3038590.html#a3038590

    In essence, I want to retrieve the artifacts of the build being promoted in order to push them elsewhere (say to an FTP server, or whatever). This sounded to me like the perfect combination of three plugins in order: promoted-build, copy-artifact and ftppublisher. My problem is that I can't find a way to tell the copy-artifact plugin for which build I want to get the artifacts. All I have, from the promoted-builds plugin, is a reference to the build itself, via $PROMOTED_URL. Would it make sense to add a function to copy-artifacts so it could consume the $PROMOTED_URL information supplied by the promoted-build plugin?

    Currently, I have to write custom steps in the build promotion logic for retrieving the wanted artifacts (using wget) -- thus in effect not using the copy-artifacts plugin at all, which is a pity.

    1. I haven't used Promoted Builds, but I thought Kohsuke added the copy-by-permalink build selector in copyartifact plugin for copying from promoted builds.. does that plugin add permalinks you can reference in a copyartifact build step?

    2. Patrick, did you ever get this process working? I'm attempting a similar process and would like to know what ended up working for you. Thanks!

    3. I solved it by using the variable ${PROMOTED_NUMBER}.

      1. Thanks, together with selecting "Specific build" for "Which build" this worked for me also.

  9. I used this plugin before and it worked great. But in a new job it is not working.

    I'm getting the following error.
    ERROR: Failed to copy artifacts from EVEREST.MAIN with filter: EVEREST/MAIN/EVEREST.MAIN.BLD.*.MashupGenome.tar.gz 
    hudson.util.IOException2: hudson.util.IOException2: Not in GZIP format

    The file that should be copied is 110MB
    In older versions of hudson, I've had this plugin copy many larger files without a problem.

    I'm not sure why I'm getting a gzip error for copying a binary file
    Any ideas on how to fix this would be appreciated

    1. This is JENKINS-7745 which should be fixed in Hudson 1.384.

      1. Unknown User (stijn)

        unfortunately, it is not..

  10. Unknown User (lepokle)

    Hello,

    how can I copy the "main" artifacts from another job? I can copy the artifacts from an sepcified module and from all modules. But I didn't find a valid input to copy the artifacts that I see on the main site of the job.

    Thanks,

     Leo

    1. Click the help (question) icons in the build step to get some information about selecting projects/modules/artifacts. Try the user's Mailing List if you still need assistance, thanks.

  11. I'm using latest Jenkins 1.399 and copy artifacts plug-in 1.13. I want to a job running on a Windows slave, so use copy artifacts plug-in copying the files from the master(on linux) to slave.

    From the console output the artifacts are copied successfully. However no file is actually copied. It's an intermittent problem. Is there anyway to add more debug information to trace this problem?

  12. Hi,

    I don't see the options in my job options. I use maven2 jobs, jenkins 1.400 and JDK6 under tomcat 7

    1. The maven job type does not have build steps; use a freestyle job to use copyartifact plugin.

  13. The Project Name field is too small, can you make it bigger (like extend to the end of the page like other fields)?

    I'm quite verbose in my project names since I have a lot of them for different projects.

    1. Please file bug reports and feature requests at http://issues.jenkins-ci.org/ and pick copyartifact component, thx!

  14. I get a ClassNotFoundException when adding a copy artifact build step on plugin version 1.18 with Jenkins 1.409.1.

    I opened an issue - JENKINS-11207, https://issues.jenkins-ci.org/browse/JENKINS-11207.

  15. Version 1.10 noted that source and target jobs cannot both run on slave nodes. Is this still true with 1.18? I do not run anything on my master, so I only have slave to slave situations...

    1. That still applies, but note that that note is about the "copy from workspace" option only; there is no limitation for copying archived artifacts.

  16. The plugin doesn't flatten directories when copying artifacts from a specific build of a multi-configuration project (matrix). Instead it puts the artifacts into a folder titled '$LABEL=$NODE_NAME within the destination projects workspace. For example, I have it set to copy artifacts named "*/.pkg, */.msi" from Matrix Project "Foo", build #50. "Foo" is configured with a Slave axis which builds two jobs, one on a slave titled "mac" and the other on "winxp". After the artifacts are copied, the destination project ends up with $WORKSPACE/slave=winxp/Installer.msi and $WORKSPACE/slave=mac/Installer.pkg. It should be placing the Installer.pkg and Installer.msi files in $WORKSPACE and not creating 'slave=winxp' or 'slave=mac' folders.

    1. Please file bug reports and feature requests at http://issues.jenkins-ci.org/ and pick copyartifact component, thx!

  17. This plugin doesn't work at all, I don't see any messages in the log from this plugin, also I don't see any copied files too (jenkins 1.446, gradle 1.0)

    1. I've created a free-style job and plugin works properly...

  18. I have a parent project run very fast, and child project very slow, when I configure child project with this plugin with option: "Upstream build that triggered this job", it copied artifacts from the first build other than the last build.( parent project build 2, 3, 4, 5 trigger child project build 2, child project copy artifacts from parent project build 2, but it should copy artifacts from build 5)

    I have create an issue for this: JENKINS-14636, anybody help to solve this problem?

  19. I have several projects that builds various components in parallel. When all the jobs have finished I use the Join Plugin to trigger a aggregation job that should aggregate all the build artifacts from the other job. But I can't figure out how to configure the Copy Artifact plugin to copy artifacts from the various jobs. I can't use latest stable build. Because I need to be sure that I use the same SVN revision across all the jobs.

    1. I think you can merge your several projects to one Matrix project, then use that job to trigger this copy artifacts job.

      1. The problem is that the different projects does not include the same build steps. So we have created multiple projects, and used the Join Plugin.

        1. An alternative to the Join plugin is the use of Multijob Plugin that allows the execution of multiple jobs (as a phase) as build steps (ex: building components in different OSes), chained later with the Copy artifact plugin to get from the Workspace of those jobs that were executed and which output is required for next build steps (or more phases).

  20. Hello!

    First of all, I'd like to note that plugin works really well. Thank you very much.

    However, I've recently had a need to perform the following task:

    The old system had job2, which followed job1 directly, copying artifact from there. Now I have job1x, which is very different from job1 but gives the same artifact file afterwards.

    Is there a way for me to copy an artifact not from a specific job, but rather from a job that trigger job2, be it job1 or job1x? Or do I need to make a new job that corresponds solely to job1x and takes artifact from there?

    Thank you.

    Best wishes,

    Vladimir

  21. Has anyone else seen a problem with this plugin when viewing fingerprints?  After a build that uses Copy Artifact has completed, I now see two "See Fingerprints" links on the side of the build page.  Both links go to the same place, but the list contains ONLY the fingerprint of the artifact that was copied.  Any other files/artifacts that were fingerprinted are not displayed on this list.   Not sure if this is a jenkins issue or a plugin issue.

    1. I have exactly the same problem -- two "See Fingerprints" links but the list only contains fingerprints of the artifacts that were copied.  I tried upgrading Jenkins to the latest -- 1.503 -- but the problem persists, so I tend to think this is a bug with this plugin.  Did you file a bug report on this?

  22. Hi,

    Does anybody noticed that this plugin with newer versions of Jenkins (above 1.455)  causes error when Jenkins try to create archive from file which is symlink to file with long path. I.e. when I try to archive file  wich is symlink to file: "/var/fpwork/ciscnsn/jenkins_master/jhome/jobs/artifact_copy_test/builds/2012-10-09_14-07-32/archive/src/lteDo/exec/dsp/release/LFSPC-DLDSP-MT2-RT_00099999.BIN" I've got this error

    ERROR: Failed to archive artifacts: src/.config*,src/lteDo/exec/dsp/release/*.BIN,j_environment.txt,src/ECL/ECL,src/lteDo/exec/mcu/release/tproxy,TestedFeatures.html,src/lteDo/D_LTE/DL_TUP/MT2/Config/dsp/release/TupU_MT2_FSM2.map,src/lteDo/D_LTE/DL_TUP/Config/Cpu1/dsp/release/DlTupDspCpu1.map,src/lteDo/D_LTE/DL_TUP/Config/Cpu2/dsp/release/DlTupDspCpu2.map,src/lteDo/D_LTE/UL_TUP/Config/Cpu2/dsp/release/UlTupDspCpu2.map,src/lteDo/exec/dsp/release/DlTupDspCpu1.out,src/lteDo/exec/dsp/release/UlTupDspCpu2.out,src/lteDo/exec/dsp/release/DlTupDspCpu2.out,src/lteDo/exec/dsp/release/TupU_MT2_FSM2.out
    hudson.util.IOException2: hudson.util.IOException2: Failed to extract /var/fpwork/jenkins_slave_lom/workspace/artifact_copy_test/src/.config*,src/lteDo/exec/dsp/release/*.BIN,j_environment.txt,src/ECL/ECL,src/lteDo/exec/mcu/release/tproxy,TestedFeatures.html,src/lteDo/D_LTE/DL_TUP/MT2/Config/dsp/release/TupU_MT2_FSM2.map,src/lteDo/D_LTE/DL_TUP/Config/Cpu1/dsp/release/DlTupDspCpu1.map,src/lteDo/D_LTE/DL_TUP/Config/Cpu2/dsp/release/DlTupDspCpu2.map,src/lteDo/D_LTE/UL_TUP/Config/Cpu2/dsp/release/UlTupDspCpu2.map,src/lteDo/exec/dsp/release/DlTupDspCpu1.out,src/lteDo/exec/dsp/release/UlTupDspCpu2.out,src/lteDo/exec/dsp/release/DlTupDspCpu2.out,src/lteDo/exec/dsp/release/TupU_MT2_FSM2.out
    	at hudson.FilePath.readFromTar(FilePath.java:1817)
    	at hudson.FilePath.copyRecursiveTo(FilePath.java:1729)
    	at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:116)
    	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    	at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:705)
    	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:680)
    	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:658)
    	at hudson.model.Build$RunnerImpl.post2(Build.java:162)
    	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627)
    	at hudson.model.Run.run(Run.java:1459)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    	at hudson.model.ResourceController.execute(ResourceController.java:88)
    	at hudson.model.Executor.run(Executor.java:239)
    Caused by: java.io.IOException: Failed to chmod /var/fpwork/ciscnsn/jenkins_master/jhome/jobs/artifact_copy_test/builds/2012-10-09_14-07-32/archive/src/lteDo/exec/dsp/release/LFSPC-DLDSP-MT2-RT_00099999.BIN : No such file or directory
    	at hudson.FilePath._chmod(FilePath.java:1248)
    	at hudson.FilePath.readFromTar(FilePath.java:1813)
    

    Any suggestion?

  23. Problem:

    Using a parametrized build for a component release build we have to copy the required base libraries of a concrete version into the current job. At this moment we create release build jobs for those base libraries for each concrete release version representing a subversion tag (base 1.1, base 1.1, base 1,2, ....). In all other jobs we copy the concrete release version of the libraries specifying the concrete release build job. That's not comfortable.

    Preferred solution:

    We would like to create one parametrized release build job only for the base libraries (fine) but then how can we copy a concrete version of the libraries from one job? For sure we don't want to specify the build number because this is - like in coding - not an expressive (readable) value.

    What we are seeking for is : copy from job mylibraries.release/SVN_TAG=1.5 Can this be done? Or can this be provided in near future?

    PS: What I can see is that - using SVN_TAG as parameter - for a done job I can find the value under "Injected environment variables".

    Injected environment variables

  24. Hi,

    Can I customize artifacts location in upstream job, such as

    ${ArtifactsPath}\${JOB_NAME}\${BUILD_NUMBER}

    instead of the default Jenkins artifacts folder?

    Thank you.

    Yue.

    1. It seems to me that if your using a global ArtifactsPath for all your jobs, a better choice would be a simple shell command to copy the artifacts. 

      Copy Artifacts Plugin is suposed to abstract the specifics away and let you use built in Jenkins artifact handeling functionality to get at artifacts by perma links, or "last good build"  or even (see my problem below) filtering projects based on project parameters.   Check out the pop up help.

      Im considering the global artifact location as an alternative to CopyArtifacts plugin.

  25. KEY=$VALUE fails to find job!

    Before I pull my hair out, is this SUPOSED to work, maybe I missing something basic?

    Hard coding a KEY=VALUE pair in the PROJECT NAME like this:  Project Name = CHILD_JOB/PARENT_BUILD_TAG=jenkins-PARENT_JOB-67 works as expected and I can get the artifiact from the corect CHILD_JOB job.

    However, using a variable in the KEY=VALUE pair like this:  Project Name = CHILD_JOB/PARENT_BUILD_TAG=$MY_BUILD_TAG fails!

    Odly enough, in the error message we see that it understood variable in some way.

    "Unable to find project for artifact copy: CHILD_JOB/PARENT_BUILD_TAG=jenkins-PARENT_JOB-67"   which is exactly what I hard coded previously!  DOH!



  26. Unknown User (gym496)

    Can this plugin to be used for coping artifacts from project located at another Jenkins server? How to set up "Project name" if project is build by another Jenkins build server (not related as master/slave)?

    If it is currently impossible, it would be very desirable feature for a lot of people.

  27. Can we control the folder to copy retaining its directory structure?

    I want to copy only dir3 from the complete archive, removing the parent directory structure but retaining the child directory structure of dir1/dir2/dir3/dir4/files

  28. 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

  29. Is there a way to exclude certain files?

  30. which protocol is used to transfer the artifacts? HTTP or another protocal?

  31. Is this syntax expected to work for user defined build parameters or only matrix axes?

    job_name/param=something

  32. Is this plugin supposed to manage a "mirror" of the artifacts? In particular, if a file is no longer in the source directory of the artifacts, then in the "copy" step, does it remove the file from the artifacts in the target job? because it doesn't appear to. So that means the downstream job is accumulating old artifacts that are no longer really artifacts.

  33. Is it possible to filter artifact copy based on parent build status?

    I have an issue when a build is triggered from an incremental build. When that happens, some artifacts might not have been generated so I moved to fetch artifacts based on module instead of parent archiving. That works fine until a build is aborted and some artifacts are generated.

    The module artifacts appear to be successful and stable but since the build was aborted nothing have been uploaded to the master so the builds fail until a new artifact of that module is generated...

    There is any way to sort it out? Filter through parent completion status or something?

    Thanks

  34. Hi.

    I am trying to use Copy Artifact plugin to copy results from one job that builds iOS application and produces Application.app folder (to run in iOS Simulator) into anothe job that uses Calabash to execute tests over that Application.app in iOS Simulator.

    And I faced with a critical problem - whenever I copy results myself manually everything works perfectly but when I try to copy results using Copy Artifact plugin I constantly receive error that iOS simulator can't load application.

    I guess it may be because of links inside Application.app folder or because of empty folders / files.

    Could you please fix it.

  35. I have a build job and a deploy job, both configured to run on a remote slave, not the master. The build job is configured to archive the artifacts at the end of the build, and these artifacts get stored on the remote slave. The deploy job is configured to copy artifacts from the build job but fails as it is unable to find the build job and therefore the build artifacts, It appears the "copy artifacts" plugin may be looking for the build artifacts on the master when they are actually stored on the remote.

    If this is true, is there a plan to enhance this plugin to allow for copying over artifacts that are on the remote slave itself?

  36. I have a build job and a deploy job, both configured to run on a remote slave, not the master. The build job is configured to archive the artifacts at the end of the build, and these artifacts get stored on the remote slave. The deploy job is configured to copy artifacts from the build job but fails as it is unable to find the build job and therefore the build artifacts, It appears the "copy artifacts" plugin may be looking for the build artifacts on the master when they are actually stored on the remote.

    If this is true, is there a plan to enhance this plugin to allow for copying over artifacts that are on the remote slave itself?

  37. I ned to copy the whole workspace from another project andf noticed folloeing:

    The Copy Artifact Plugin doesn't copy folders, that contain only softlinks (on linux environment). Even the folder isn't copied. There must be at least one file included.

    Is this a known bug? Will there be a fix?

    Cheers

    Stefan

  38. My Jenkins instance is offering version 1.38 for this plugin, but it cannot be found at this time. This is of Apr 19th 2016.

  39. Does the COPYARTIFACT_BUILD_NUMBER_SUFFIX work on expected lines in workflow/pipeline jobs? copy artifact command am using is

    step([$class: 'CopyArtifact', filter: '.rpm', fingerprintArtifacts: true, projectName: 'test_pkg', resultVariableSuffix: 'testsuffix', selector: [$class: 'ParameterizedBuildSelector', parameterName: 'testparam'], target: 'test_packages'])*

    when i do

    println COPYARTIFACT_BUILD_NUMBER_TESTSUFFIX

    am getting the below error

    groovy.lang.MissingPropertyException: No such property: COPYARTIFACT_BUILD_NUMBER_TESTSUFFIX for class: WorkflowScript

     env.COPYARTIFACT_BUILD_NUMBER_TESTSUFFIX returns null

  40. Can I use the COPYARTIFACT_BUILD_NUMBER_SUFFIX  so that my artifacts get copied to the target directory with the suffix? So say I have artifacts executableA and executableB. And I set my Target directory to /jenkinsbin. I set COPYARTIFACT_BUILD_NUMBER_SUFFIX   to just be the build number. I want my executables to show up as 


    /jenkins/executableA.3

    /jenkins/executableB.3

    /jenkins/executableA.4

    /jenkins/executableB.4


    Where 3 and 4 are the build numbers. Is that possible?


  41. Is there pipeline code for the permission to copy artifact at the project level?

     

    Thanks

  42. How to config  which build of ‘Copy from workspace of the latest completed build’  in pipeline?

Write a comment…