Working with Build Results
In TeamCity a build goes through several states:
Upon some event the build trigger adds the build to the queue where the build stays waiting for a free agent.
The build starts on the agent and performs all configured build steps.
The build finishes and becomes a part of the build history of this build configuration.
In TeamCity all information about a particular build, whether it is queued, running or finished, is accumulated on the Build Results page. The page can be accessed by clicking the build number or build status link.
Besides providing the build information, this page enables you to:
run a custom build using the Run button
- use the Actions menu to do the following:
- edit the configuration settings
The Build Results page can be accessed from the Build Configuration Home page and from various places in the TeamCity web UI where a build number or build status appears as a link. Some data is accessible only after the build is finished, some details like Changes, Build Parameters, and Dependencies are also applicable to the build while it is waiting in the queue.
The build information available on the page is described in sections below.
Depending on the build runners enabled as your build steps, the number of tabs on the page and the information on the Overview tab may vary.
The Overview tab displays general information about the build, such as the build duration, the agent used, trigger, dependencies, and so on. If a build is queued, the tab displays the position of the build in the queue, the time the build is supposed to start, and so on.
If a build is running, the tab displays the build progress. You can also stop a running build using the corresponding link on the Overview tab or the appropriate option from the Actions drop-down menu.
If another build of this same build configuration is concurrently running, a small window appears on the Overview tab with the following information:
The build results of that build linking to the Build results page
A changes link with a drop-down list of changes included in that build
The build number, time of start, and a link to the agent it is running on.
If a build is probably hanging, the corresponding notification is displayed at the top of the Overview tab. In this case TeamCity provides a link to view the process tree of the running build and the thread dumps of each Java or .NET process in a separate frame. If the process is not Java or .NET, its command line is retrieved. The possibility to view the thread dump is supported for the following platforms:
Windows, with JDK 1.3 and higher
Windows, with JDK 1.6-1.8, using jstack utility
Non-Windows, with JDK 1.5-1.8, using jstack utility
The information on the tab may vary depending on the build runners enabled. If configured, you will see the Code Coverage Summary and a link to the full report or/ and the number of duplicates found in your code and a link opening the Duplicates tab, and so on. Refer to the sections below for details on Code Coverage and Duplicates Tabs.
If there were problems in the build, the Overview tab also displays them.
If the build has failed tests, you can view them on the Overview tab of the Build Results page.
Successful or failed tests in this build (if any) are displayed on the Overview tab.
For each failed test, you can view its stacktrace, the diff between the expected and actual values, jump to the test history, assign a team member to investigate its failure, open the test in your IDE and/or start fixing it right away.
To view all tests related to the build, use the dedicated Tests tab. Learn more.
From the Changes tab you can:
- Review all changes included in the build with their corresponding revisions in version control
Review changes included in the build that the current build depends on: if the current build configuration has an artifact dependency, and the artifact downloaded in the current build has changed compared to the one downloaded in the previous build of the current configuration, the Artifact dependencies changes node appears displaying the build which was used to download artifact dependencies from, and the changes which were included in that build.
- Label the build sources
Configure the VCS settings of the build configuration (if you have enough permissions).
For each change on this page you can:
Explore the change in details
View which dependent build the changes come from or builds with snapshot dependencies with the "Show changes from snapshot dependencies" option enabled. On hovering over the icon, the number of the dependent build is displayed; clicking the link opens the Сhanges tab of the dependent build.
Navigate to the Change Details by clicking a changed file link
Trigger a custom build with this change
Download patch to your IDE
The Changes tab provides advanced filtering capabilities for the list of changes. Enabling Show graph displays the changes as a graph of commits to the VCS roots related to this build.
The graph appears on the left of the list and allows you to get the view of the changes with a variable level of detailing. You can:
View the VCS roots which were changed in this build, each of the roots being represented as a bar.
Navigate to a graph node to display the VCS root revision number.
Click a bar to select a single VCS root. The changes not pertaining to this root are grayed out.
If there have been merges between the branches of the repository, the graph displays them. To collapse a bar, navigate to its darker area and click it to hide history of merges. The dotted line will indicate that the bar is expandable.
If your VCS root has subrepositories (marked S in the list of changes), navigate to a node in the parent to see which commits in subrepositories are referenced by this revision in the parent.
You can select to view the modified files by checking the Show files box. Clicking a filename opens the diff viewer.
To view all the tests for a particular build, open the Build Results page, and navigate to the Tests tab. On this page:
Download all tests in CSV
Click the link to download a file containing all the build tests results.
Use this area to filter the test list:
Select the number of tests to be shown on a page.
Shows the status (OK, Ignored, and Failure) of the test. Failed tests are shown as red Failure links, which you can click to view and analyze the test failure details. Click the header above this column to sort the table by status.
Click the name of a class, a namespace/package, or a suite to view only the items included in it. Click the arrow next to the test name to view the test history, open the test in the Build Log, start investigation of the failed test, or open the failed test in an IDE.
Shows the time it took to complete the test. You can view the Test Duration Graph described below by clicking this icon: .
Shows the sequence in which the tests were run. Click the header above this column to sort by the test order number.
To navigate to the history of a particular test, click the arrow next to the test name and select Test History from the drop-down menu.
There are several places where tests are listed and from where you can open Test History.
Project Home page | Current Problems tab
Project Home page | Current Problems tab | Problematic Tests
Build Results page | Overview tab
Build Results page | Tests tab
Projects | <build with failed tests> | build results drop-down menu
Clicking the Test history link opens the Test details page where you can find following information:
The test details section including test success rate and test's run duration data:
the Test Duration Graph. For more information, refer to the Test Duration Graph description below.
Complete test history table containing information about the test status, its duration, and information on the builds this test was run in.
Test Duration Graph
The Test Duration graph (see the screenshot above) is useful for comparing the amount of time it takes individual tests to run on the builds of this build configuration.
Test duration results are only available for the builds which are currently in the build history. Once a build has been cleaned up, this data is no longer available.
You can perform the following actions on the Test Duration Graph:
Filter out the builds that failed the test by clearing the Show failed option.
Calculate the daily average values by selecting the Average option.
Click a dot plotted on the graph to jump to the page with the results of the corresponding build.
View a build summary in the tooltip of a dot on the graph and navigate to the corresponding Build Results page.
Filter information by agents selecting or clearing a particular agent or by clicking All or None links to select or clear all agents.
For each build you can view and download its build log. More information on build logs in TeamCity is available here.
All system properties and environmental variables which were used by a particular build are listed on the Parameters tab of the Build Results page. Learn more about build parameters.
The Reported statistic values page shows statistics values reported for the build and displays a statistics chart for each of the values on clicking the View Trend icon .
If a finished build has artifact and/or snapshot dependencies, the Dependencies tab is displayed on the Build Results page. Here you can explore builds whose artifacts and/or sources were used for creating this build (Downloaded artifacts) as well as the builds which used the artifacts and/or sources of the current build (Delivered artifacts). Additionally, you can view indirect dependencies for the build. That is, for example, if build A depends on build B which depends on builds C and D, then these builds C and D are indirect dependencies for build A.
If you have integration with an issue tracker configured, and if there is at least one issue mentioned in the comments for the included changes or in the comments for the build itself, you will see the list of issues related to the current build in the Issues tab.
If the build produced artifacts, they all are displayed on the dedicated Artifacts tab.
Code Coverage Results
If you have code coverage configured in your build runner, a dedicated tab with the full HTML code coverage report appears on the Build Results page.
By clicking the links in the Coverage Breakdown section, you can drill-down to display statistics for different scopes, for example, Namespace, Assembly, Method, and Source Code.
Code Inspection Results
If configured, the results of the Code Inspection build step are shown on the Code Inspection tab. Use the left pane to navigate through the inspection results; the filtered inspections are shown in the right pane.
Switch from the Total to Errors option, if you're not interested in warnings.
Use the scope filter to limit the view to the specific directories. This makes it easier for developers to manage specific code of interest.
Use the inspections tree view under the scope filter to display results by specific inspection.
Note that TeamCity displays the source code line number that contains the problem. Click it to jump the code in your IDE.
If your build configuration has Duplicates build runner as one of the build steps, you will see the Duplicates tab in the Build Results.
The tab consists of:
A list of duplicates found. The new only option enables you to show only the duplicates that appeared in the latest build.
A list of files containing these duplicates. Use the left and right arrow buttons to show selected duplicate in the respective pane in the lower part of the tab.
Two panes with the source code of the file fragments that contain duplicates.
Scope filter in the upper-left corner lists the specific directories that contain the duplicates. This filtering makes it easier for developers to manage the code of interest.
Maven Build Info
For each Maven build the TeamCity agent gathers Maven specific build details, which are displayed on the Maven Build Info tab of the Build results after the build is finished.
Internal Build ID
In the URL of the build result page you can find the parameter
buildId with a numeric value. This number is internal build id uniquely identifying the build in the TeamCity installation. You might need this ID when constructing URL manually. For example, for REST API, downloading artifacts.