Class BaseBuild

    • Field Detail

      • REMOTE_ARTIFACTS_PREFIX

        public static final String REMOTE_ARTIFACTS_PREFIX
        Internal property that enables storing remote artifacts count by type in custom storage
        Since:
        2022.06
        See Also:
        Constant Field Values
      • myBuildId

        protected long myBuildId
      • myStatsCallCounter

        protected Counter myStatsCallCounter
    • Constructor Detail

      • BaseBuild

        protected BaseBuild​(long buildId,
                            String rawTriggeredBy,
                            @Nullable
                            Date buildStartDateOnServer,
                            @NotNull
                            BuildContext context)
    • Method Detail

      • initMetrics

        protected void initMetrics​(@NotNull
                                   BuildContext context)
      • setBuildStartTimes

        protected void setBuildStartTimes​(@Nullable
                                          Date buildStartTimeAgent,
                                          @NotNull
                                          Date buildStartTimeServer,
                                          @Nullable
                                          TimeZone agentTimeZone)
      • isPersonal

        public boolean isPersonal()
        Description copied from interface: Build
        Returns if this build has been run to test personal changes
        Specified by:
        isPersonal in interface Build
        Returns:
        true is the build has been started as personal, and its changes were not committed to the VCS
      • isPersonalPatchAvailable

        protected boolean isPersonalPatchAvailable()
      • getDuration

        public long getDuration()
        The build duration is computed as follows: - if build was started on an agent (run command was successfully sent) then duration is calculated as finish time - start on agent time - otherwise duration is calculated as finish time - remove from queue time
        Specified by:
        getDuration in interface Build
        Returns:
        current build duration in seconds
      • getDurationOnAgent

        public long getDurationOnAgent()
        Specified by:
        getDurationOnAgent in interface BuildEx
        Returns:
        build duration in seconds on agent or 0 if the build wasn't running on agent
      • getOwner

        @Nullable
        public SUser getOwner()
        Description copied from interface: SBuild
        If this build is personal one, returns the owner of this build.
        Specified by:
        getOwner in interface SBuild
        Returns:
        null if this build is not personal otherwise owner of this build
        See Also:
        Build.isPersonal()
      • getBuildId

        public long getBuildId()
        Description copied from interface: Build
        Returns build id
        Specified by:
        getBuildId in interface Build
        Returns:
        Unique build id
      • getBuildTypeId

        @NotNull
        public String getBuildTypeId()
        Description copied from interface: Build
        Returns build configuration internal id
        Specified by:
        getBuildTypeId in interface Build
        Returns:
        ID of the configuration this build belongs to.
      • getBuildTypeExternalId

        @NotNull
        public String getBuildTypeExternalId()
        Description copied from interface: Build
        Returns the build type external ID.

        If the external identifier does not exist (this might happen for a running build if the build type was deleted, and a new build type with same external id was created), a BuildPromotion#NOT_EXISTING_BUILD_TYPE_ID value is returned.

        Specified by:
        getBuildTypeExternalId in interface Build
        Returns:
        build type external ID
      • getBuildType

        @Nullable
        public BuildTypeEx getBuildType()
        Description copied from interface: SBuild
        Returns build configuration this build belongs to.
        Specified by:
        getBuildType in interface Build
        Specified by:
        getBuildType in interface SBuild
        Returns:
        build configuration descriptor.
      • getBuildTypeName

        @NotNull
        public String getBuildTypeName()
        Description copied from interface: Build
        Returns name of the build configuration this build belongs to.
        Specified by:
        getBuildTypeName in interface Build
        Returns:
        name of the build configuration this build belongs to.
      • getFullName

        @NotNull
        public String getFullName()
        Specified by:
        getFullName in interface Build
        Returns:
        full name of the build configuration this build belongs to, has form "project_name :: buildconfig_name"
      • getArtifacts

        @NotNull
        public BuildArtifacts getArtifacts​(@NotNull
                                           BuildArtifactsViewMode mode)
        Description copied from interface: SBuild
        Returns accessor for build artifacts. This accessor checks all necessary permissions for accessing files.
        Specified by:
        getArtifacts in interface SBuild
        Parameters:
        mode - view mode to see artifacts
        Returns:
        build artifacts viewer
      • getArtifactsDirectory

        @NotNull
        public File getArtifactsDirectory()
        Description copied from interface: SBuild
        Returns artifacts directory of this build. Artifacts should be locked with help of ArtifactsGuard for the period of their processing.
        Specified by:
        getArtifactsDirectory in interface SBuild
        Returns:
        artifacts directory of this build
      • getArtifactDependencies

        @NotNull
        public List<SArtifactDependency> getArtifactDependencies()
        Description copied from interface: SBuild
        Returns the artifact dependencies of this build. Same as getBuildPromotion().getArtifactDependencies().
        Specified by:
        getArtifactDependencies in interface SBuild
        Returns:
        artifact dependencies
      • isResponsibleNeeded

        public boolean isResponsibleNeeded()
        Description copied from interface: SBuild
        Always returns false for personal and/or cancelled builds. Returns true if this build is failed (or failing) and there are no finished successful builds after this build. Returns true even if there is active responsible for the build configuration but the configuration status is failed.
        Specified by:
        isResponsibleNeeded in interface SBuild
        Returns:
        see above.
      • getLogMessages

        public List<String> getLogMessages​(int skipMessages,
                                           int maxCount)
        Description copied from interface: Build
        Allows to get messages logged for the build
        Specified by:
        getLogMessages in interface Build
        Parameters:
        skipMessages - index of the first message to load (zero based)
        maxCount - messages count limit.
        Returns:
        list of plain messages
      • getCompilationErrorMessages

        public List<String> getCompilationErrorMessages()
        Description copied from interface: Build
        Returns compilation error messages of this build
        Specified by:
        getCompilationErrorMessages in interface Build
        Returns:
        list of plain messages
      • getDownloadedArtifacts

        @NotNull
        public DownloadedArtifacts getDownloadedArtifacts()
        Description copied from interface: SBuild
        Returns information about artifacts downloaded by this build according to configured artifact dependencies.
        Specified by:
        getDownloadedArtifacts in interface SBuild
        Returns:
        information about downloaded artifacts.
      • getProvidedArtifacts

        @NotNull
        public DownloadedArtifacts getProvidedArtifacts()
        Description copied from interface: SBuild
        Returns information about provided artifacts, i.e. artifacts that were downloaded from this build by other builds by artifact dependencies.
        Specified by:
        getProvidedArtifacts in interface SBuild
        Returns:
        see above
      • isUsedByOtherBuilds

        public boolean isUsedByOtherBuilds()
        Description copied from interface: SBuild
        Returns true if this build is used by other builds, i.e. there are dependencies by sources on this build or artifacts of this build were downloaded by other builds.
        Specified by:
        isUsedByOtherBuilds in interface SBuild
        Returns:
        see above
      • getTags

        public List<String> getTags()
        Description copied from interface: SBuild
        Returns list of public tags for this build
        Specified by:
        getTags in interface SBuild
        Returns:
        tags
      • setTags

        public void setTags​(List<String> tags)
        Description copied from interface: SBuild
        Sets public tags for this build
        Specified by:
        setTags in interface SBuild
        Parameters:
        tags - tags to set
      • setTags

        public void setTags​(@Nullable
                            User user,
                            @Nullable
                            List<String> tags)
        Description copied from interface: SBuild
        Sets public tags for this build
        Specified by:
        setTags in interface SBuild
        Parameters:
        user - user who set tags, this user is not treated as tag owner - the user from security context, doesn't correspond to tags owner
        tags - tag labels to set
      • getFileContent

        @NotNull
        public byte[] getFileContent​(String filePath)
                              throws VcsException
        Description copied from interface: SBuild
        Get binary content of the single file related to this build.
        Specified by:
        getFileContent in interface SBuild
        Parameters:
        filePath - - relative file path regarding to the project root, "checkout root" from vcs root should not be included
        Returns:
        - specified file content, corresponding to the build
        Throws:
        VcsException - if some problem occurred while getting file content from the source control repository.
      • getRevisions

        @NotNull
        public List<BuildRevision> getRevisions()
        Description copied from interface: SBuild
        List of all revisions which were used for the build instance
        Specified by:
        getRevisions in interface SBuild
        Returns:
        all revisions which were used in this build
      • getLabels

        public List<VcsLabel> getLabels()
        Description copied from interface: SBuild
        VCS labels which were made by TeamCity for the build. If label attempt fails VcsLabel status is FAILED and failureReason contains short description of the problem.
        Specified by:
        getLabels in interface SBuild
        Returns:
        VCS labels which were made by TeamCity for the build
      • isHasInternalArtifactsOnly

        public boolean isHasInternalArtifactsOnly()
        Description copied from interface: SBuild
        Returns true if this build has only internal (hidden) artifacts.
        Specified by:
        isHasInternalArtifactsOnly in interface SBuild
        Returns:
        true if this build has internal artifacts only
        See Also:
        SBuild.isArtifactsExists()
      • getQueuedDate

        @NotNull
        public Date getQueuedDate()
        Description copied from interface: SBuild
        Returns the date when the build was added to queue.
        Specified by:
        getQueuedDate in interface SBuild
        Returns:
        queued time.
      • getServerStartDate

        @NotNull
        public Date getServerStartDate()
        Description copied from interface: SBuild
        Returns the timestamp when the build was removed from the queue.
        Specified by:
        getServerStartDate in interface SBuild
        Returns:
        the timestamp when the build was removed from the queue.
      • getClientStartDate

        @Nullable
        public Date getClientStartDate()
        Description copied from interface: SBuild
        Returns the timestamp when the build was started on the build agent (in agent time)
        Specified by:
        getClientStartDate in interface SBuild
        Returns:
        the timestamp when the build was started on the build agent (in agent time)
      • isStartedOnAgent

        public boolean isStartedOnAgent()
        Description copied from interface: SBuild
        Returns true if this build was started on agent.
        Specified by:
        isStartedOnAgent in interface SBuild
        Returns:
        see above
      • getStartDate

        @NotNull
        public Date getStartDate()
        Description copied from interface: Build
        Returns timestamp when the build start command has been sent to an agent (server-time) or remove from queue time if start command has not been sent
        Specified by:
        getStartDate in interface Build
        Returns:
        see above
      • convertToServerTime

        @NotNull
        public Date convertToServerTime​(@NotNull
                                        Date agentTime)
        Description copied from interface: SBuild
        Converts agent time to server time by taking into account agent and server time difference.
        Specified by:
        convertToServerTime in interface SBuild
        Parameters:
        agentTime - time on agent
        Returns:
        server time
      • convertToAgentTime

        @NotNull
        public Date convertToAgentTime​(@NotNull
                                       Date serverTime)
        Description copied from interface: SBuild
        Converts server time to agent time by taking into account agent and server time difference.
        Specified by:
        convertToAgentTime in interface SBuild
        Parameters:
        serverTime - server time to convert
        Returns:
        agent time
      • getBuildNumberParameters

        @NotNull
        public Map<String,​String> getBuildNumberParameters()
      • getRawBuildNumber

        public abstract String getRawBuildNumber()
        Description copied from interface: SBuild
        Returns raw build number (i.e. build number with unresolved parameters if they exist) in contradistinction to Build.getBuildNumber() method which will return build number with all unresolved parameters replaced with ???.
        Specified by:
        getRawBuildNumber in interface SBuild
        Returns:
        raw build number which can contain unresolved parameters
      • getBuildCounter

        protected abstract long getBuildCounter()
      • getSequenceBuild

        public SBuild getSequenceBuild()
        Description copied from interface: BuildPromotionOwner
        If associated build promotion has modification id, returns the sequence build which contains the same changes as this build promotion. I.e. returns the first build, which contains all the changes from associated build promotion. If associated build promotion already in changes sequence, returns BuildPromotion.getAssociatedBuild()
        Specified by:
        getSequenceBuild in interface BuildPromotionOwner
        Returns:
        sequence build for the same changes as for associated build promotion, or null if there are no such a build
      • getVcsRootEntries

        public List<VcsRootInstanceEntry> getVcsRootEntries()
        Description copied from interface: SBuild
        Returns vcs roots with checkout rules for the build start moment.
        Specified by:
        getVcsRootEntries in interface SBuild
        Returns:
        vcs roots with checkout rules for the build start moment.
      • getChanges

        @NotNull
        public List<SVcsModification> getChanges​(@NotNull
                                                 SelectPrevBuildPolicy policy,
                                                 boolean includeModificationsIfPreviousBuildIsAbsent)
        Description copied from interface: Build
        List of modifications detected in the version control since the previous build (selected according to the specified policy) Ordering: last detected modifications goes first in the list
        Specified by:
        getChanges in interface Build
        Specified by:
        getChanges in interface SBuild
        Parameters:
        policy - can be one of the two kinds:
        includeModificationsIfPreviousBuildIsAbsent - should the method return something if there's no previous build.
        Returns:
        list of modifications
      • getContainingChanges

        @NotNull
        public List<SVcsModification> getContainingChanges()
        Description copied from interface: Build
        Returns changes in this build. Same as getChanges(SelectPrevBuildPolicy.SINCE_LAST_BUILD, false) Ordering: last detected modifications goes first in the list
        Specified by:
        getContainingChanges in interface Build
        Specified by:
        getContainingChanges in interface SBuild
        Returns:
        changes in this build
      • isOutOfChangesSequence

        public boolean isOutOfChangesSequence()
        Description copied from interface: SBuild
        Returns true if there is a build started before but having more recent changes then this build. Such situation can occur if this build was associated with a specific change list before adding to queue at the time when more recent changes were available.
        Specified by:
        isOutOfChangesSequence in interface SBuild
        Returns:
        see above
      • getTriggeredBy

        @NotNull
        public TriggeredBy getTriggeredBy()
        Description copied from interface: SBuild
        Returns details about how this build was triggered.
        Specified by:
        getTriggeredBy in interface SBuild
        Returns:
        see above
      • getBuildComment

        public Comment getBuildComment()
        Description copied from interface: SBuild
        Returns build comment.
        Specified by:
        getBuildComment in interface SBuild
        Returns:
        build comment, or null if this build is not commented.
      • setBuildComment

        public void setBuildComment​(@Nullable
                                    User user,
                                    @Nullable
                                    String comment)
        Description copied from interface: SBuild
        Sets the comment for the build
        Specified by:
        setBuildComment in interface SBuild
        Parameters:
        user - user who sets the comment
        comment - text of the comment
      • isPinned

        public boolean isPinned()
        Description copied from interface: SBuild
        Returns true if this build is pinned
        Specified by:
        isPinned in interface SBuild
        Returns:
        true if this build is pinned
      • getId

        public String getId()
      • hasBuildFinishParameters

        public boolean hasBuildFinishParameters()
      • resetBuildFinalParameters

        public void resetBuildFinalParameters()
      • getParametersProvider

        @NotNull
        public ParametersProvider getParametersProvider()
        Description copied from interface: ParametersSupport
        Returns parameters which can be used by value resolver. Note that some of the parameters may not have values defined because sometimes values can be calculated on the agent side only.
        Specified by:
        getParametersProvider in interface ParametersSupport
        Returns:
        set of build parameters known on the server-side for the build and prefixed server-side parameters of all the build dependencies
      • hasTests

        public boolean hasTests()
        Specified by:
        hasTests in interface SBuild
        Returns:
        true if this build has tests (for composite, returns true if at least one dependency has a test)
      • createShortStatistics

        @NotNull
        protected ShortStatistics createShortStatistics​(boolean updatePersistentCaches)
      • preloadFailedTests

        protected void preloadFailedTests​(@NotNull
                                          ShortStatistics stats)
      • publishStatisticValue

        public void publishStatisticValue​(@NotNull
                                          String valueTypeKey,
                                          @Nullable
                                          BigDecimal value)
      • getBuildOwnParameters

        @NotNull
        public Map<String,​String> getBuildOwnParameters()
        Description copied from interface: SBuild
        Returns map of parameters (configuration params, system properties and environment variables) excluding parameters provided by extensions.
        Specified by:
        getBuildOwnParameters in interface SBuild
        Returns:
        set of build parameters known on the server-side for the build.
      • getVariablesProvider

        @NotNull
        protected ContextVariables getVariablesProvider()
      • getValueResolver

        @NotNull
        protected ValueResolver getValueResolver​(@NotNull
                                                 Map<String,​String> highPrioParams)
        Creates value resolver where the specified map of parameters has the highest priority.
      • getValueResolver

        @NotNull
        public ValueResolver getValueResolver​(boolean preferBuildStartParameters)
        Creates resolver which can use build start parameters instead of build finish params, this resolver is required to provide consistent resolving on the server for personal and non personal builds
      • getBuildNumberWithoutRefs

        @NotNull
        @Contract("null -> !null")
        protected static String getBuildNumberWithoutRefs​(@Nullable
                                                          String curBuildNumber)
      • isInternalError

        public boolean isInternalError()
        Description copied from interface: SBuild
        Returns whether this build failed because of internal error (infrastructural error not related to build script).
        Specified by:
        isInternalError in interface SBuild
        Returns:
        true iff the build is error
      • getFirstInternalError

        public String getFirstInternalError()
        Description copied from interface: SBuild
        Returns the first internal error in a build, or null.
        Specified by:
        getFirstInternalError in interface SBuild
        Returns:
        first internal error type
      • getFirstInternalErrorMessage

        public String getFirstInternalErrorMessage()
        Description copied from interface: SBuild
        Returns the error message associated with the first internal error, or null
        Specified by:
        getFirstInternalErrorMessage in interface SBuild
        Returns:
        first internal error message
      • getTestMessages

        public List<TestInfo> getTestMessages​(int skipTests,
                                              int maxTestsToLoad)
        Description copied from interface: Build
        Retrieves information about tests failed in the build. Note that for running build currently executing test will be added to the list too.
        Specified by:
        getTestMessages in interface Build
        Parameters:
        skipTests - index/order number of the first test to load (zero based)
        maxTestsToLoad - indicates how many tests to load, -1 to load all
        Returns:
        list of plain messages
      • getClientTimeZone

        @Nullable
        public TimeZone getClientTimeZone()
        Description copied from interface: SBuild
        Returns agent machine time zone if it's available on server.
        Specified by:
        getClientTimeZone in interface SBuild
        Returns:
        Agent time zone or null if the build wasn't started yet.
      • getAgent

        @NotNull
        public abstract BuildAgentEx getAgent()
        Specified by:
        getAgent in interface SBuild
        Returns:
        agent where this build executed.
      • addBuildProblem

        public void addBuildProblem​(@NotNull
                                    BuildProblemData buildProblem)
        Description copied from interface: SBuild
        Adds build problem to the build. Currently build problem causes build failure.
        Specified by:
        addBuildProblem in interface SBuild
      • buildProblemsChanged

        public void buildProblemsChanged​(@NotNull
                                         List<BuildProblemData> before,
                                         @NotNull
                                         List<BuildProblemData> after)
        Description copied from interface: BuildEx
        Called when build problems are changed (added, deleted or muted)
        Specified by:
        buildProblemsChanged in interface BuildEx
        Parameters:
        before - problems before change
        after - problems after change
      • getBuildStatus

        public Status getBuildStatus()
        Description copied from interface: Build
        Returns current build status
        Specified by:
        getBuildStatus in interface Build
        Returns:
        Current build status
      • getFailureReasons

        @NotNull
        public List<BuildProblemData> getFailureReasons()
        Description copied from interface: SBuild
        Returns build problems that caused build failure or empty list if build is successful
        Specified by:
        getFailureReasons in interface SBuild
        Returns:
        see above
      • getBuildProblems

        @NotNull
        public List<BuildProblem> getBuildProblems()
        Description copied from interface: BuildEx
        Returns all build problems for this promotion with extended information about muting This method can perform rather slow as it reloads build problems from database and fills mute info from audit (reads database as well) If you don't need mute info try using SBuild.getFailureReasons()
        Specified by:
        getBuildProblems in interface BuildEx
        Returns:
        see above
      • hasBuildProblemOfType

        public boolean hasBuildProblemOfType​(@NotNull
                                             String type)
        Description copied from interface: SBuild
        Returns true if build has build problem of this type
        Specified by:
        hasBuildProblemOfType in interface SBuild
        Parameters:
        type - build problem type
        Returns:
        see above
        See Also:
        BuildProblemData
      • muteBuildProblems

        public void muteBuildProblems​(boolean muteIfTrue)
        Description copied from interface: BuildEx
        Makes all existing build problems enabled or disabled
        Specified by:
        muteBuildProblems in interface BuildEx
        Parameters:
        muteIfTrue - pass true to make build successful, false to make existing problems visible again
      • muteBuildProblems

        public void muteBuildProblems​(@NotNull
                                      SUser user,
                                      boolean muteIfTrue,
                                      @NotNull
                                      String comment)
        Description copied from interface: SBuild
        Makes all existing build problems enabled or disabled
        Specified by:
        muteBuildProblems in interface SBuild
        Parameters:
        user - user that will be used in audit
        muteIfTrue - pass true to make build successful, false to make existing problems visible again
        comment - comment for audit
      • addUserBuildProblem

        public BuildProblemData addUserBuildProblem​(@NotNull
                                                    SUser user,
                                                    @NotNull
                                                    String problemDescription)
        Description copied from interface: SBuild
        Adds user provided build problem to the build. Currently build problem causes build failure. Adding user provided problem always overrides previously added one
        Specified by:
        addUserBuildProblem in interface SBuild
        Parameters:
        user - user that will be used in audit
        Returns:
        added build problem
      • deleteBuildProblem

        public void deleteBuildProblem​(@NotNull
                                       SUser user,
                                       @NotNull
                                       String identity,
                                       @Nullable
                                       String comment)
        Description copied from interface: BuildEx
        Deletes build problem Deleting build problem may change build status to SUCCESS
        Specified by:
        deleteBuildProblem in interface BuildEx
        Parameters:
        user - user that will be used in audit
        identity - identiry of build problem to be removed
        comment - comment for audit
      • getBranch

        @Nullable
        public Branch getBranch()
        Specified by:
        getBranch in interface SBuild
        Returns:
        branch associated with this build or null.
      • getPreviousFinished

        @Nullable
        public SFinishedBuild getPreviousFinished()
        Specified by:
        getPreviousFinished in interface SBuild
        Returns:
        returns previous finished build (ordered by changes). If this build is personal, this method can return previous personal build, otherwise only regular builds are returned.
      • getAuditLogFactory

        @NotNull
        public AuditLogFactory getAuditLogFactory()
      • getSettingsDigestFromFile

        @Nullable
        public static byte[] getSettingsDigestFromFile​(@NotNull
                                                       File artifactsDirectory)
      • getCustomDataStorage

        @NotNull
        public CustomDataStorage getCustomDataStorage​(@NotNull
                                                      String key)
        Description copied from interface: SBuild
        Returns a data storage which can be used to associate arbitrary data with the build.
        Specified by:
        getCustomDataStorage in interface SBuild
        Parameters:
        key - a key to access the storage
        Returns:
        an existing or newly created storage for the given key
      • getCustomDataStorageIdsByPrefix

        @NotNull
        protected Set<String> getCustomDataStorageIdsByPrefix​(@NotNull
                                                              String keyPrefix)
      • getTemporaryCustomDataStorage

        @NotNull
        public CustomDataStorage getTemporaryCustomDataStorage()
      • getSettingsDigestFile

        @NotNull
        protected File getSettingsDigestFile()
      • getStatisticValue

        @Nullable
        public BigDecimal getStatisticValue​(@NotNull
                                            String valueTypeKey)
        Specified by:
        getStatisticValue in interface SBuild
        Parameters:
        valueTypeKey - ValueType key to lookup. Eg TimeSpentInQueue, ArtifactsSize, DuplicatorStats CodeCoverageB, CodeCoverageC or any custom build statistic value reported by service message during the build.
        Returns:
        Value of specified ValueType. Null when specified value wasn't produced during the build (eg no artifacts produced for ArtifactsSize key) or key is invalid.
        See Also:
        ValueProviderRegistry
      • getStatisticValues

        @NotNull
        public Map<String,​BigDecimal> getStatisticValues()
        Specified by:
        getStatisticValues in interface SBuild
        Returns:
        All statistics values associated with this build. Includes all predefined ValueTypes reported for this build and custom metrics reported by service message during the build as well (even when there is no ValueType defined for the metric).
      • getBuildFeaturesOfType

        @NotNull
        public Collection<SBuildFeatureDescriptor> getBuildFeaturesOfType​(@NotNull
                                                                          String featureType)
        Description copied from interface: SBuild
        Returns collection of enabled and resolved build features of specified type from build settings (resolving is performed at the moment of the method call).
        Specified by:
        getBuildFeaturesOfType in interface SBuild
        Parameters:
        featureType - type of the build feature
        Returns:
        see above
      • isOutdated

        public boolean isOutdated()
        Description copied from interface: SBuild
        Returns true if this build is outdated. The build is considered outdated if there is a finished non-personal build which contains newer (or same) changes as contained in this build.
        Specified by:
        isOutdated in interface SBuild
        Returns:
        see above
      • isAgentLessBuild

        public boolean isAgentLessBuild()
        Specified by:
        isAgentLessBuild in interface SBuild
        Returns:
        true if this build does not require an agent (for now this is true for composite builds only)
      • isDetachedFromAgent

        public boolean isDetachedFromAgent()
        Description copied from interface: SBuild
        Returns true if this build was detached from agent at some point.
        Specified by:
        isDetachedFromAgent in interface SBuild
        Returns:
        see above
      • getDetachFromAgentReceivedTimestamp

        @Nullable
        public Long getDetachFromAgentReceivedTimestamp()
        Specified by:
        getDetachFromAgentReceivedTimestamp in interface BuildEx
        Returns:
        timestamp when this build was attempted to detach from agent
      • getWaitReasons

        @NotNull
        public Map<String,​Long> getWaitReasons()
        Description copied from interface: SBuild
        Returns wait reasons for this build, while it was in the build queue. The key of the map is a wait reason description in human friendly form. The value is amount of milliseconds this wait reason was reported for this queued build.
        Specified by:
        getWaitReasons in interface SBuild
        Returns:
        map of a wait reason to amount of time it was reported for the build in milliseconds
      • getBuildContext

        @NotNull
        protected BuildContext getBuildContext()
      • isTimedOut

        public boolean isTimedOut()
        Specified by:
        isTimedOut in interface BuildEx
        Returns:
        true if this build finished by timeout
      • getFinishOnAgentDate

        @Nullable
        public Date getFinishOnAgentDate()
        Description copied from interface: SBuild
        Returns timestamp when the build finished on agent (server time) or null if it is still running on agent.
        Specified by:
        getFinishOnAgentDate in interface SBuild
        Returns:
        see above
      • nowDate

        @NotNull
        protected Date nowDate()
      • now

        protected long now()
      • updateExternalArtifactsInfoOnAccess

        public void updateExternalArtifactsInfoOnAccess()