> scp -r 
jenkins-controller:<JENKINS_HOME>/jobs/ProjectFolder/jobs/MyProject/branches/
*<HOW_DO_I_COMPUTE_THE_BRANCH_PORTION_OF_PATH?>*
/lastSuccessfulBuild/artifact/<GLOB>



Hi, sorry to revive an old thread but,

I'm going down the `scp` route. However, upon copying 
`jobs/${JOB_NAME}/builds/${BUILD_ID}/archive/` 
to the controller node, refreshing the Jenkins UI 
(https://{JENKINS_URL}/job/{JOB_NAME}/job/{BRANCH_NAME}/) does not show the 
copied artifact. Was this a problem you came across, if so how did you 
overcome it?


Alternatively, would you mind sharing the implementation of your shared 
library function?
On Friday, March 5, 2021 at 5:08:05 PM UTC+13 [email protected] wrote:

> To whom it may concern, I ended up finding the code in Jenkins branch-api 
> plugin that's creating that branch path segment (the NameMangler 
> <https://github.com/jenkinsci/branch-api-plugin/blob/f2bd7ec715057feb047754f5427f209bbf1b3248/src/main/java/jenkins/branch/NameMangler.java#L55>),
>  
> however it turned out to be completely unnecessary since I can just get the 
> build directory (to construct the path to the artifacts on the controller) 
> from the project/job object, obtained by name from the jenkins instance in 
> groovy. So my shared library function is even simpler now, works for any 
> project type and safer because it doesn't need to use any core or plug in 
> classes.
>
> On Monday, March 1, 2021 at 1:43:02 PM UTC-8 Tim Black wrote:
>
>> I'm trying to do same, but in both directions (archiving AND copying 
>> artifacts from upstream). I wonder how the scp approach to copying 
>> artifacts would work in multibranch pipelines? Can one deterministically 
>> construct the path to a branch job's artifact folder on the controller's 
>> disk?
>>
>> As I commented here 
>> <https://stackoverflow.com/questions/21268327/rsync-alternative-to-jenkins-copy-artifacts-plugin#comment117378767_25530456>,
>>  
>> I'm also seeking massive performance gains by replacing copyArtifact with a 
>> shell call in my pipelines. In lieu of installing a proper artifact 
>> management system and replacing all archive/copyArtifact with calls to its 
>> REST API (which I'll be doing later this year), I'm hoping to find a quick 
>> alternative. SCP would be a slam dunk for me if I could construct the 
>> source path correctly. The problem is that Jenkins is using an algorithm to 
>> create a unique folder name, both for workspace names, and for branch job 
>> names, but I'm not sure if that's consistent.
>>
>> E.g. to fetch artifacts from the corresponding branch of an upstream 
>> multibranch pipeline job with Full project name of 
>> "ProjectFolder/MyProject/feature%2Ffoo", in the downstream multibranch 
>> pipeline, I would do something like:
>>
>> scp -r 
>> jenkins-controller:<JENKINS_HOME>/jobs/ProjectFolder/jobs/MyProject/branches/
>> *<HOW_DO_I_COMPUTE_THE_BRANCH_PORTION_OF_PATH?>*
>> /lastSuccessfulBuild/artifact/<GLOB>
>> On Wednesday, April 29, 2015 at 7:02:09 AM UTC-7 [email protected] wrote:
>>
>>> I found that using that standard method is quite slow compared to scp.   
>>> So I use that method to copy just a few small files, and one with GUIDs for 
>>> fingerprinting, and for the big ones I do something like
>>>
>>> scp -v ${WORKSPACE}/bigfile.tar.gz 
>>> user@jenkins_host_name:path_to_jenkins_root/jobs/${JOB_NAME}/builds/${BUILD_ID}/archive/
>>>  
>>> 2>&1 | tail -n 5
>>>
>>> I think there's a ${JENKINS_HOME} or something for the path on the 
>>> master.   That copies a 2-3 GB file in roughly 40 seconds instead of 
>>> something like 4 minutes.  There was a fix put in recently for I think some 
>>> Maven plugin where when copying files to the master, the master would poll 
>>> the slave to send over the next packet with too many requests, and fixing 
>>> that sped things up a ton, perhaps there's another fix coming for how other 
>>> files are transferred.
>>>
>>> Since "big" can sometimes be > 8GB, it would choke the normal archiver 
>>> which uses tar under the covers, or at least it did.  In any case this is 
>>> much faster, since pigz is multicore aware:
>>>
>>> tar cf ${WORKSPACE}/bigfile.tar.gz --use-compress-program=pigz [files to 
>>> pack]
>>>
>>> YMMV
>>>
>>> --- Matt
>>>
>>>
>>> On Monday, April 27, 2015 at 1:27:43 AM UTC-7, [email protected] 
>>> wrote:
>>>>
>>>> Are you using "Archive Artifacts" in the upstream job, and the "Copy 
>>>> Artifact" plugin in the downstream job? This is the standard method. 
>>>> If so, maybe the upstream job should produce a single zip file , which 
>>>> the downstream job and get and unzip. 
>>>> Matthew 
>>>>
>>>> > -----Original Message----- 
>>>> > From: [email protected] [mailto:[email protected]] 
>>>> On Behalf Of Simon Richter 
>>>> > Sent: 25 April 2015 01:03 
>>>> > To: [email protected] 
>>>> > Subject: Efficiently copying artifacts 
>>>> > 
>>>> > Hi, 
>>>> > 
>>>> > I have a project that outputs a few large files (compiled DLL and 
>>>> static 
>>>> > library) as well as a few hundred header files as artifacts for use 
>>>> by 
>>>> > the next project in the dependency chain. Copying these in and out of 
>>>> > workspaces takes quite a long time, and the network link is not even 
>>>> > near capacity, so presumably handling of multiple small files is not 
>>>> > really efficient. 
>>>> > 
>>>> > Can this be optimized somehow, e.g. by packing and unpacking the 
>>>> files 
>>>> > for transfer? Manual inspection of artifacts is secondary, I think. 
>>>> > 
>>>> >    Simon 
>>>> > 
>>>>
>>>> -- 
>>>> This e-mail and any attachments may contain confidential, copyright and 
>>>> or privileged material, and are for the use of the intended addressee 
>>>> only. 
>>>> If you are not the intended addressee or an authorised recipient of the 
>>>> addressee please notify us of receipt by returning the e-mail and do not 
>>>> use, copy, retain, distribute or disclose the information in or attached 
>>>> to 
>>>> the e-mail.
>>>> Any opinions expressed within this e-mail are those of the individual 
>>>> and not necessarily of Diamond Light Source Ltd. 
>>>> Diamond Light Source Ltd. cannot guarantee that this e-mail or any 
>>>> attachments are free from viruses and we cannot accept liability for any 
>>>> damage which you may sustain as a result of software viruses which may be 
>>>> transmitted in or with the message.
>>>> Diamond Light Source Limited (company no. 4375679). Registered in 
>>>> England and Wales with its registered office at Diamond House, Harwell 
>>>> Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United 
>>>> Kingdom
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/8fa6845c-4cf7-4cd0-81c2-591f7ac9cc8fn%40googlegroups.com.

Reply via email to