Code changed in hudson
User: : jglick
Path:
trunk/hudson/main/core/src/main/java/hudson/tasks/ArtifactArchiver.java
trunk/hudson/main/core/src/main/java/hudson/tasks/LogRotator.java
trunk/hudson/main/core/src/main/resources/hudson/tasks/ArtifactArchiver/config.jelly
trunk/hudson/main/core/src/main/resources/hudson/tasks/ArtifactArchiver/config.properties
trunk/hudson/main/test/src/test/java/hudson/tasks/ArtifactArchiverTest.java
trunk/hudson/main/test/src/test/java/hudson/tasks/LogRotatorTest.java
trunk/hudson/main/war/resources/help/project-config/log-rotation.html
trunk/hudson/main/war/resources/help/tasks/artifactArchiver/latestOnly.html
http://fisheye4.cenqua.com/changelog/hudson/?cs=15587
Log:
[FIXED JENKINS-2417] Taking stability into account when deciding which builds & artifacts to keep.
Previously, Hudson only tried to keep successful builds, meaning it would discard the last stable build
if there was a long run of unstable builds. This made .../lastStableBuild/... permalinks useless.
Artifact archiver logic with "latest only" also improved more generally:
1. Discards old artifacts at the start of the build. It might as well save the disk space sooner rather than later.
2. Rather than deleting all old artifacts prior to some point, now keeps the latest representatives
of different stability classes of build: always keeps last stable if available, and also last successful if newer,
and (just in case) also the last failed if that is newer. Formerly it behaved oddly: during a run of failed builds,
all of their artifacts would be kept, though these are unlikely to be useful.
Also introducing tests for all this functionality, which does not seem to have been tested before.