How to get jenkins to copy artifacts to a dynamic directory? How to get jenkins to copy artifacts to a dynamic directory? jenkins jenkins

How to get jenkins to copy artifacts to a dynamic directory?


Like you said, I don't think the scp plugin can do it directly. However, there may be a workaround.

In your build, you have access to the build number using $BUILD_NUMBER (or %BUILD_NUMBER%, as the case may be -> Linux vs Windows).

In any case, as part of your script, you could create a directory with $BUILD_NUMBER as the name, so:

mkdir -p $BUILD_NUMBER

-or-

md %BUILD_NUMBER%

So, for example, a new directory would be /path/to/workspace/1.2.3.4

Once your build is complete, at the end of your script, create the above directory, move your artifact into it, and tar/zip the directory up.

Use this tar/zip file as your job's artifact.

Use the scp plugin to transfer this artifact to your destination machine, and untar/unzip it there (let's say at /path/to/artifact/directory)

What you will have then, is /path/to/artifact/directory/1.2.3.4.

For the next build, let's say 1.2.3.5, you will create a new directory (named 1.2.3.5), move your artifact into it at the end of the build, zip it up and transfer it.When you unzip it at your destination, you'll have a new directory /path/to/artifact/directory/1.2.3.5 with the new build's artifact in it.

I know it sounds confusing, but is actually quite easy to implement.