Include skipped builds in database and web ui
We have had an on-and-off relationship with skipped builds in the database. Generally we have attempted to exclude them from the db, but we have occasionally (accidentally?) included them. The status quo is that builds with a result of SKIPPED (as well as several other results which don't come from the executor) are not recorded in the database. With a greater interest in being able to determine which jobs ran or did not run for a change after the fact, this job deliberately adds all builds (whether they touch an executor or not, whether real or not) to the database. This means than anything that could potentially show up on the status page or in a code-review report will be in the database, and can therefore be seen in the web UI. It is still the case that we are not actually interested in seeing a page full of SKIPPED builds when we visit the "Builds" tab in the web ui (which is the principal reason we have not included them in the database so far). To address this, we set the default query in the builds tab to exclude skipped builds (it is easy to add other types of builds to exclude in the future if we wish). If a user then specifies a query filter to *include* specific results, we drop the exclusion from the query string. This allows for the expected behavior of not showing SKIPPED by default, then as specific results are added to the filter, we show only those, and if the user selects that they want to see SKIPPED, they will then be included. On the buildset page, we add a switch similar to the current "show retried jobs" switch that selects whether skipped builds in a buildset should be displayed (again, it hides them by default). Change-Id: I1835965101299bc7a95c952e99f6b0b095def085
This commit is contained in:
@@ -1965,13 +1965,7 @@ class PipelineManager(metaclass=ABCMeta):
|
||||
build_set.jobNodeRequestComplete(request.job_name, nodeset)
|
||||
# Put a fake build through the cycle to clean it up.
|
||||
if not request.fulfilled:
|
||||
fakebuild = build_set.item.setNodeRequestFailure(job)
|
||||
try:
|
||||
self.sql.reportBuildEnd(
|
||||
fakebuild, tenant=build_set.item.pipeline.tenant.name,
|
||||
final=True)
|
||||
except Exception:
|
||||
log.exception("Error reporting build completion to DB:")
|
||||
build_set.item.setNodeRequestFailure(job)
|
||||
self._resumeBuilds(build_set)
|
||||
tenant = build_set.item.pipeline.tenant
|
||||
tenant.semaphore_handler.release(
|
||||
|
||||
Reference in New Issue
Block a user