Interface BuildServerListener

    • Method Detail

      • agentRegistered

        void agentRegistered​(@NotNull
                             SBuildAgent agent,
                             long currentlyRunningBuildId)
        Called when build agent is registered (connected)
        Some events may be skipped when an agent was registered on another node. For example on read-only node the event is not called for an agent which was registered on the main server for a short period of time (registered and then immediately unregistered).
        Parameters:
        agent - which was registered
        currentlyRunningBuildId - id of the build which is running on this build agent, -1 if no build is running on agent
      • agentDescriptionUpdated

        void agentDescriptionUpdated​(@NotNull
                                     SBuildAgent agent)
        Called when build agent description update is finished.
        Some events may be skipped when an agent was registered on another node. For example on read-only node the event is not called for an agent which was registered on the main server for a short period of time (registered and then immediately unregistered).
        Parameters:
        agent - agent with updated agent description
        Since:
        6.0
      • agentsDescriptionUpdated

        void agentsDescriptionUpdated​(@NotNull
                                      java.util.Collection<SBuildAgent> agents)
        Same as agentDescriptionUpdated(SBuildAgent) but is sent for a number of agents at once.
        Parameters:
        agents - a collection of agents
        Since:
        2020.2
      • beforeAgentUnregistered

        void beforeAgentUnregistered​(@NotNull
                                     SBuildAgent agent)
        Called before build agent unregistration
        Some events may be skipped when an agent was registered on another node. For example on read-only node the event is not called for an agent which was registered on the main server for a short period of time (registered and then immediately unregistered).
        Parameters:
        agent - which is about to unregister
      • agentUnregistered

        @Deprecated
        void agentUnregistered​(@NotNull
                               SBuildAgent agent)
        Called after build agent unregistration
        Some events may be skipped when an agent was registered on another node. For example on read-only node the event is not called for an agent which was registered on the main server for a short period of time (registered and then immediately unregistered).
        Parameters:
        agent - which was unregistered
      • agentUnregistered

        void agentUnregistered​(@NotNull
                               SBuildAgent agent,
                               @NotNull
                               java.lang.String reason)
        Called after build agent unregistration
        Some events may be skipped when an agent was registered on another node. For example on read-only node the event is not called for an agent which was registered on the main server for a short period of time (registered and then immediately unregistered).
        Parameters:
        agent - which was unregistered
        reason - why the agent unregistered
        Since:
        2022.12
      • agentStatusChanged

        void agentStatusChanged​(@NotNull
                                SBuildAgent agent,
                                boolean wasEnabled,
                                boolean wasAuthorized)
        Called when the status of an agent is changed by a user
        Some events may be skipped when an agent is registered on another node. For example on read-only node the event is not called for an agent which status was changed twice (enabled and then immediately disabled) on the main server.
        Parameters:
        agent - the agent
        wasEnabled - the previous status
        wasAuthorized - previous authorized state
      • agentRemoved

        void agentRemoved​(@NotNull
                          SBuildAgent agent)
        Called when agent was completely removed from server storage.
        The event is not called when the current node doesn't manage agents, i.e. on read-only node
        Parameters:
        agent - removed agent
        See Also:
        see #agentRemoved(int)
      • agentRemoved

        void agentRemoved​(int agentId)
        Called when agent with specified id is removed. If server has agent instance then both agentRemoved(SBuildAgent) and this method are called. If server does not have an agent, for example, if agent was removed by another node, then only this method is called.
        Parameters:
        agentId - id of the removed agent
        Since:
        2020.2.1
      • buildTypeAddedToQueue

        @Deprecated
        void buildTypeAddedToQueue​(@NotNull
                                   SBuildType buildType)
        Deprecated.
        Called when build configuration was added to build queue
        Parameters:
        buildType - build configuration added to build queue
      • buildTypeAddedToQueue

        void buildTypeAddedToQueue​(@NotNull
                                   SQueuedBuild queuedBuild)
        Called when build configuration was added to build queue Some events may be missing when the current node is not responsible for managing build queue. For example, on read-only node the event may be skipped if a build was in the queue for a short period of time, i.e. removed shortly after being added.
        Parameters:
        queuedBuild - queued build added to the queue
      • buildRemovedFromQueue

        void buildRemovedFromQueue​(@NotNull
                                   SQueuedBuild queuedBuild,
                                   User user,
                                   java.lang.String comment)
        Called when a build is removed from the build queue (started, deleted, optimized, etc.) Some events may be missing when the current node is not responsible for managing build queue. For example, on read-only node the event may be skipped if a build was in the queue for a short period of time, i.e. removed shortly after being added.
        Parameters:
        queuedBuild - queued build removed from the queue
        user - if build was removed manually, contains the user who removed build configuration from queue
        comment - provided by user when removing build from queue
      • buildPinned

        void buildPinned​(@NotNull
                         SBuild build,
                         @Nullable
                         User user,
                         @Nullable
                         java.lang.String comment)
        Called when user pinned the build. NB build could be pinned multiple times without unpinning
        user and comment parameters are omitted (nulls) when the build was pinned on another node (i.e. it's not called on read-only node)
        Parameters:
        build - pinned build
        user - the user who pinned the build
        comment - comment provided by user when pinning build
      • buildUnpinned

        void buildUnpinned​(@NotNull
                           SBuild build,
                           @Nullable
                           User user,
                           @Nullable
                           java.lang.String comment)
        Called when user unpinned the build. NB build could be unpinned multiple times without pinning
        user and comment parameters are omitted (nulls) when the build was unpinned on another node (i.e. it's not called on read-only node)
        Parameters:
        build - unpinned build
        user - the user who unpinned the build
        comment - comment provided by user when unpinning build
      • buildQueueOrderChanged

        void buildQueueOrderChanged()
        Called when user reordered build queue order. Is not called when build is started. Some events may be missing when the current node is not responsible for managing build queue. For example, read-only node is not aware of all the queue changes which happened on the main server.
      • changesLoaded

        void changesLoaded​(@NotNull
                           BuildPromotion buildPromotion)
        This method is called if changes are loaded for a build promotion while it was in the queue or when it was starting. The method is called irregardless of whether the checking for changes operation was successful or not. If operation failed, then BuildPromotion.isFailedToCollectChanges() will return true. Note: TeamCity collects changes for builds in the queue in several cases, the most common one if the build participates in a build chain. This is a more general version of the now deprecated changesLoaded(SRunningBuild) method.
        Parameters:
        buildPromotion - a build promotion for which changes have been collected
        Since:
        2022.04
      • buildStarted

        void buildStarted​(@NotNull
                          SRunningBuild build)
        Called when build is about to start. Changes are not loaded yet, and build agent didn't start the build yet.
        Parameters:
        build - build configuration whose status has changed
      • changesLoaded

        void changesLoaded​(@NotNull
                           SRunningBuild build)
        Deprecated.
        since 2022.04, use changesLoaded(BuildPromotion) instead
        Called when changes for a newly started build have been loaded successfully. The method is not called if checking for changes operation failed.
        Parameters:
        build - build, whose changes are loaded
      • buildChangedStatus

        void buildChangedStatus​(@NotNull
                                SRunningBuild build,
                                Status oldStatus,
                                Status newStatus)
        Called when build status changes from successful to failed
        Parameters:
        build - corresponding running build
        oldStatus - previous status
        newStatus - new status
      • beforeBuildFinish

        void beforeBuildFinish​(@NotNull
                               SRunningBuild runningBuild)
        Called right before build finishing, allows to write additional messages to the build log, update build status.
        Parameters:
        runningBuild - corresponding running build
      • buildFinished

        void buildFinished​(@NotNull
                           SRunningBuild build)
        Called after build finishing, only if build was not interrupted
        Parameters:
        build - running build // TODO: shall pass SFinishedBuild as parameter
      • buildInterrupted

        void buildInterrupted​(@NotNull
                              SRunningBuild build)
        Called after build finishing, only if build was interrupted
        Parameters:
        build - running build // TODO: shall pass SFinishedBuild as parameter
      • buildDetachedFromAgent

        void buildDetachedFromAgent​(@NotNull
                                    SRunningBuild build)
        Called after build is detached from agent, making the agent available to other builds
        Parameters:
        build - running build
        Since:
        2020.2
      • messageReceived

        @Deprecated
        void messageReceived​(@NotNull
                             SRunningBuild build,
                             @NotNull
                             BuildMessage1 message)
        Deprecated.
        since 10.0 this method no longer works
        Called each time when running build got a message from build agent
        Parameters:
        build - running build
        message - message sent to the build
      • responsibleChanged

        void responsibleChanged​(@NotNull
                                SBuildType bt,
                                @NotNull
                                ResponsibilityEntry oldValue,
                                @NotNull
                                ResponsibilityEntry newValue)
        Called when build configuration responsible has changed, or responsibility status has changed
        Some events may be omitted when the responsibility was changed on another node, i.e. it's not called on read-only node when the responsibility was assigned and immediately removed on the main server.
        Parameters:
        bt - build configuration
        oldValue - previous responsibility entry
        newValue - new responsibility entry
        Since:
        7.0
      • responsibleChanged

        @Deprecated
        void responsibleChanged​(@NotNull
                                SProject project,
                                @Nullable
                                TestNameResponsibilityEntry oldValue,
                                @NotNull
                                TestNameResponsibilityEntry newValue,
                                boolean isUserAction)
        Deprecated.
        Is not used since TeamCity 8.1, use collection-based #responsibleChanged method instead.
        Called when test responsibility is changed.
        Parameters:
        project - the project in which test responsibility has changed
        oldValue - old responsibility entry
        newValue - new responsibility entry
        isUserAction - true if responsibility status was changed manually via Web UI
        Since:
        5.0
      • responsibleChanged

        void responsibleChanged​(@NotNull
                                SProject project,
                                @NotNull
                                java.util.Collection<TestName> testNames,
                                @NotNull
                                ResponsibilityEntry entry,
                                boolean isUserAction)
        Called when responsibility for several tests at once is changed.
        Some events may be omitted when the responsibility was changed on another node, i.e. it's not called on read-only node when the responsibility was assigned and immediately removed on the main server.
        Parameters:
        project - the project
        testNames - test names
        entry - the new responsibility entry for each test
        isUserAction - true if responsibility status was changed manually via Web UI
        Since:
        6.0
      • responsibleChanged

        void responsibleChanged​(@NotNull
                                SProject project,
                                @NotNull
                                java.util.Collection<BuildProblemInfo> buildProblems,
                                @Nullable
                                ResponsibilityEntry entry)
        Called when responsibility for several build problems at once is changed.
        Some events may be omitted when the responsibility was changed on another node, i.e. it's not called on read-only node when the responsibility was assigned and immediately removed on the main server.
        Parameters:
        project - the project
        buildProblems - build problems
        entry - the new responsibility entry or null if responsibility is removed (better use responsibleRemoved(SProject, Collection, ResponsibilityEntry) method to subscribe to the 'removed' events)
        Since:
        8.0
      • responsibleRemoved

        void responsibleRemoved​(@NotNull
                                SProject project,
                                @NotNull
                                java.util.Collection<BuildProblemInfo> buildProblems,
                                @NotNull
                                ResponsibilityEntry entry)
        Called when responsibility for build problems is removed.
        Some events may be omitted when the responsibility was changed on another node, i.e. it's not called on read-only node when the responsibility was assigned and immediately removed on the main server.
        Parameters:
        project - the project
        buildProblems - build problems
        entry - the removed responsibility entry
        Since:
        2020.2
      • responsibleRemoved

        void responsibleRemoved​(@NotNull
                                SProject project,
                                @NotNull
                                TestNameResponsibilityEntry entry)
        Called when responsibility for several tests at once is changed.
        Some events may be omitted when the responsibility was changed on another node, i.e. it's not called on read-only node when the responsibility was assigned and immediately removed on the main server.
        Parameters:
        project - the project
        entry - the new responsibility entry for each test
        Since:
        7.0
      • beforeEntryDelete

        void beforeEntryDelete​(@NotNull
                               SFinishedBuild entry)
        Called before deletion of the build history entry
        Parameters:
        entry - build to be deleted
      • entriesDeleted

        void entriesDeleted​(@NotNull
                            java.util.Collection<SFinishedBuild> removedEntries)
        Called after deletion of a set of build history entries Only one of entryDeleted(SFinishedBuild) or this method should be overriden in a listener.
        Parameters:
        removedEntries - deleted builds
        Since:
        9.0
      • entryCreated

        void entryCreated​(@NotNull
                          SFinishedBuild build)
        Called when build is added to the history.
        Since:
        2018.1
      • changeAdded

        void changeAdded​(@NotNull
                         VcsModification modification,
                         @NotNull
                         VcsRoot root,
                         @Nullable
                         java.util.Collection<SBuildType> buildTypes)
        Called when a new modification (user commit) was detected. Vcs modification can be detected during periodical process of changes collecting (in this case buildTypes parameter is null) or during build(s) startup phase. In the latter case buildTypes parameter will contain collection of build configurations for which changes collection was performed.
        Parameters:
        modification - detected VCS modification
        root - VCS root where modification was detected
        buildTypes - if changes were detected when a build starts collection of buildTypes where changes collection was performed
      • cleanupStarted

        void cleanupStarted()
        Called when database cleanup is going to start.
      • cleanupFinished

        void cleanupFinished()
        Called when database cleanup has been finished.
      • serverShutdownComplete

        void serverShutdownComplete()
        Event called after server shutdown complete. Used to terminate hung child processes.
      • sourcesVersionReleased

        void sourcesVersionReleased​(@NotNull
                                    BuildAgent agent)
        Clean sources performed for the given agent
        Parameters:
        agent - build agent whose sources are about to clean todo: change to S-interfaces
      • sourcesVersionReleased

        void sourcesVersionReleased​(@NotNull
                                    BuildType configuration)
        Clean sources performed for the given configuration on all agents
        Parameters:
        configuration - build configuration, whose sources to clean todo: change to S-interfaces
      • sourcesVersionReleased

        void sourcesVersionReleased​(@NotNull
                                    BuildType configuration,
                                    @NotNull
                                    BuildAgent agent)
        Clean sources performed for the given configuration on the given agent
        Parameters:
        configuration - build configuration, whose sources to clean
        agent - agent where to clean sources todo: change to S-interfaces
      • labelingFailed

        void labelingFailed​(@NotNull
                            SBuild build,
                            @NotNull
                            VcsRoot root,
                            @NotNull
                            java.lang.Throwable exception)
        Labeling process failed for the specified build and root with the specified problem.
        Parameters:
        build - build for which labeling failed.
        root - root for which labeling failed.
        exception - labeling cause.
      • labelingSucceed

        void labelingSucceed​(@NotNull
                             SBuild build,
                             @NotNull
                             BuildRevision revision)
        Labeling process succeed for the specified build and revision
        Parameters:
        build - build for which labeling failed.
        revision - labeled.
      • buildTagsChanged

        @Deprecated
        void buildTagsChanged​(@NotNull
                              SBuild build,
                              @NotNull
                              java.util.List<java.lang.String> oldTags,
                              @NotNull
                              java.util.List<java.lang.String> newTags)
        Called when build tags have been set to specified values
        Parameters:
        build - corresponding build, which tags have been set
        oldTags - previous tags on the build
        newTags - new tags on the build
      • buildTagsChanged

        @Deprecated
        void buildTagsChanged​(@NotNull
                              SBuild build,
                              @Nullable
                              User user,
                              @NotNull
                              java.util.List<java.lang.String> oldTags,
                              @NotNull
                              java.util.List<java.lang.String> newTags)
        Called when build tags have been set to specified values
        Parameters:
        build - corresponding build, which tags have been set
        user - user who set new tags
        oldTags - previous tags on the build
        newTags - new tags on the build
        Since:
        4.0.1
      • buildPromotionTagsChanged

        void buildPromotionTagsChanged​(@NotNull
                                       BuildPromotion buildPromotion,
                                       @Nullable
                                       User user,
                                       @NotNull
                                       java.util.Collection<TagData> oldTags,
                                       @NotNull
                                       java.util.Collection<TagData> newTags)
        Called when build promotion tags have been set to specified values
        Some parameters may be omitted when the tags were changed on another node (i.e. when the event is called on read-only node): user is null, oldTags are empty.
        Parameters:
        buildPromotion - corresponding build promotion, which tags have been set
        user - user who set new tags
        oldTags - previous tags on the build promotion (public and private)
        newTags - new tags on the build promotion (public and private)
        Since:
        9.0
      • buildCommented

        void buildCommented​(@NotNull
                            SBuild build,
                            @Nullable
                            User user,
                            @Nullable
                            java.lang.String comment)
        Called when user comment the build.
        user and comment parameters are omitted (nulls) when the build was commented on another node (i.e. when the event is called on read-only node).
        Parameters:
        build - commented build
        user - the user who commented the build
        comment - comment provided by user
      • beforeServerConfigurationLoaded

        void beforeServerConfigurationLoaded()
        Called before the server configuration is loaded by the server on startup.
        Since:
        2020.2
      • serverConfigurationReloaded

        void serverConfigurationReloaded()
        Called after the server configuration is loaded by the server on startup.
        Since:
        4.5
      • testsMuted

        void testsMuted​(@NotNull
                        MuteInfo muteInfo)
        Called when a set of tests are muted (with same mute properties). All tests are in the same project.
        The method in not called when the test was muted on another node (i.e. when the current node is a read-only node)
        Parameters:
        muteInfo - mute info
        Since:
        6.5
      • testsUnmuted

        void testsUnmuted​(@Nullable
                          SUser user,
                          @NotNull
                          java.util.Map<MuteInfo,​java.util.Collection<STest>> unmutedGroups)
        Called when several of tests have been unmuted. Tests can be belong to several projects.
        The method in not called when the test was unmuted on another node (i.e. when the current node is a read-only node)
        Parameters:
        user - user that unmuted tests, or null if they were unmuted automatically.
        unmutedGroups - groups of tests that were unmuted.
        Since:
        6.5.6
      • buildProblemsMuted

        void buildProblemsMuted​(@NotNull
                                MuteInfo muteInfo)
        Called when a set of build problems are muted (with same mute properties). All problems belong the same project.
        The method in not called when the problem was muted on another node (i.e. when the current node is a read-only node)
        Parameters:
        muteInfo - mute info
        Since:
        8.0
      • buildProblemsUnmuted

        void buildProblemsUnmuted​(@Nullable
                                  SUser user,
                                  @NotNull
                                  java.util.Map<MuteInfo,​java.util.Collection<BuildProblemInfo>> unmutedGroups)
        Called when a set of build problems are unmuted. Problems can be belong to several projects.
        The method in not called when the problem was unmuted on another node (i.e. when the current node is a read-only node)
        Parameters:
        user - user that unmuted problems, or null if they were unmuted automatically.
        unmutedGroups - groups of build problems that were unmuted.
        Since:
        8.0
      • buildProblemsChanged

        void buildProblemsChanged​(@NotNull
                                  SBuild build,
                                  @NotNull
                                  java.util.List<BuildProblemData> before,
                                  @NotNull
                                  java.util.List<BuildProblemData> after)
        Called when list of build problems changes (problems added, removed)

        before parameter may be empty or contain some outdated data when the problems are changed on another node:
        • current node is main server but the problem was added on messages processing node
        • current node is read-only but the problem was added on the main server
        Parameters:
        build - corresponding build
        before - list of build problems before change
        after - list of build problems after change
        Since:
        7.1
      • statisticValuePublished

        void statisticValuePublished​(@NotNull
                                     SBuild build,
                                     @NotNull
                                     java.lang.String valueTypeKey,
                                     @NotNull
                                     java.math.BigDecimal value)
        Called upon statistic-value related to the given build have been published
        Parameters:
        build - build this particular value pertains to
        valueTypeKey - target statistic-value's type-key
        value - target build-value
      • buildArtifactsChanged

        void buildArtifactsChanged​(@NotNull
                                   SBuild build)
        Called when build artifacts are changed by the server on disk, for example, when cleanup removed some files.
        Parameters:
        build - build whose artifacts were changed
        Since:
        9.0