I have observed a regression issue with the introduction of the new ArtifactManager (https://github.com/jenkinsci/jenkins/commit/e1eea67bb2fa1a356492e91313d84a523f441b34 - https://issues.jenkins-ci.org/browse/JENKINS-17236 ).
I have pinpointed the issue and saw it was introduced in jenkins 1.532 (as in it works perfectly in 1.531, but fails in 1.532 and above, including the 1.532.2 LTS version).
My particular use case is that the result of our build creates a symlink which points to the final artifact (the final artifact as stored on disk has a timestamp/build number in its name). However with the introduction of the new ArtifactManager the artifacts which are identified using symlinks no longer get published.
Steps to reproduce:
- Create a new job
- Add a shell build step
rm -rf folder mkdir folder echo "bla" > folder/artifact ln -sf ./artifact folder/link
- Add a 'Archive the Artifacts' post-build action and in the Files to archive text box enter
folder/link
Expected behavior (as implemented/verified) on jenkins 1.524 - 1.531:
- The build succeeds
- The 'Last Successful Artifacts' mentions:
link 4B
Actual behavior (as implemented/verified) on jenkins 1.532 - 1.552, including LTS:
- The build succeeds
- The 'Last Successful Artifacts' mentions nothing.
(for reference the build output:
Started by user anonymous Building on master in workspace /home/jenkins/jenkins/jobs/brossel_edb/workspace [workspace] $ /bin/sh -xe /tmp/hudson1352860404870483249.sh + rm -rf folder + mkdir folder + echo bla + ln -sf ./artifact folder/link Archiving artifacts Finished: SUCCESS
)
An additional sidenote is that the ArtifactDeployer plugin (version 0.28) is doing its job properly, another indication that the way symlinks are resolved/dealt with has likely changed due the introduction of the new ArtifactManager.
- is related to
-
JENKINS-17236 Pluggable artifact transfer & storage
-
- Resolved
-
The problem arises in the particular case that the directory containing the symlink was not otherwise archived. (Which would be odd in the case you cite, since there is not much purpose in archiving link without also archiving artifact, since the link would be dead, but there could be other cases where a directory containing just symlinks is being archived for some reason along with other directories with the target files.)