package hudson.plugins.cigame.util;
import hudson.model.AbstractBuild;
import hudson.model.Result;
import hudson.model.Run;
/**
* Various utilities for builds.
*
* @author kutzi
*/
public class BuildUtil {
/**
* Returns the previous build for a given build which was actually build.
*
* Note that we are not using {@link Run#getPreviousBuiltBuild()}
* as for incremental Maven builds {@link Run#getResult()} sometimes returns
* null which would result in a NPE in that method.
*/
public static AbstractBuild<?, ?> getPreviousBuiltBuild(AbstractBuild<?, ?> build) {
if (build == null) {
return null;
}
AbstractBuild<?, ?> r = build.getPreviousBuild();
while( r != null && ( r.getResult() == null || r.getResult() == Result.NOT_BUILT )) {
r = r.getPreviousBuild();
}
return r;
}
}