// Exists determines if the current build supports incremental workflow. // It checks if the previous image exists in the system and if so, then it // verifies that the save-artifacts script is present. func (b *STI) Exists(config *api.Config) bool { if !config.Incremental { return false } policy := config.PreviousImagePullPolicy if len(policy) == 0 { policy = api.DefaultPreviousImagePullPolicy } result, err := dockerpkg.PullImage(config.Tag, b.incrementalDocker, policy, false) if err != nil { glog.V(2).Infof("Unable to pull previously build %q image: %v", config.Tag, err) return false } return result.Image != nil && b.installedScripts[api.SaveArtifacts] }
// Exists determines if the current build supports incremental workflow. // It checks if the previous image exists in the system and if so, then it // verifies that the save-artifacts script is present. func (builder *STI) Exists(config *api.Config) bool { if !config.Incremental { return false } policy := config.PreviousImagePullPolicy if len(policy) == 0 { policy = api.DefaultPreviousImagePullPolicy } tag := firstNonEmpty(config.IncrementalFromTag, config.Tag) result, err := dockerpkg.PullImage(tag, builder.incrementalDocker, policy, false) if err != nil { builder.result.BuildInfo.FailureReason = utilstatus.NewFailureReason( utilstatus.ReasonPullPreviousImageFailed, utilstatus.ReasonMessagePullPreviousImageFailed, ) glog.V(2).Infof("Unable to pull previously built image %q: %v", tag, err) return false } return result.Image != nil && builder.installedScripts[api.SaveArtifacts] }