# Integration Build

## General information <a href="#general-information" id="general-information"></a>

* An integration build is a way to create a version representing several different components. Each integration build version is actually a list of component versions, one per application/branch
* Integration build versions are compared over time to understand the modifications between deployments
* When comparing an integration build version with another integration build version each component/branch build is compared to the build for the same component/branch in the previous integration build version

## Wrong implementation of integration-build can lead to several errors: <a href="#wrong-implementation-of-integration-build-can-lead-to-several-errors" id="wrong-implementation-of-integration-build-can-lead-to-several-errors"></a>

* Dependency on previous integration build is on a different branch
  * This error means that there are integration build versions with builds coming from different branches under the same component
  * This usually means that a deployment was done from a different branch for the same component
  * The outcome of this issue is that all the methods in the app will be marked as added and deleted causing more changes than actually occurred
* Dependency on previous integration build is newer
  * This error means that when looking at the integration build versions over time an older integration build version had at least one component/branch build that is newer than a build for the same component/branch in a newer integration build version
  * This usually means that there is a rollback mechanism in place that deploys an older version instead of creating a new version representing the version
  * The outcome of this issue is that no contributors are calculated for this change

## Automated reporting <a href="#automated-reporting" id="automated-reporting"></a>

* An integration lab can configured with the ‘Automatic Build’ option. Doing so will create a new version of the integration build every time a new or updated component is reported to Sealights with its lab ID
* An integration lab can with the ‘CD Only’ option. Doing so will create a new version of the integration build when a Test Stage is opened against its Lab ID and at least one of the components reporting with its Lab ID is new or updated

## Manual Reporting <a href="#manual-reporting" id="manual-reporting"></a>

You can refer to our relevant pages:

[3-component-integration-build](https://docs.sealights.io/knowledgebase/setup-and-configuration/build-and-test-execution/integration-build/3-component-integration-build "mention")

[integration-build-explicit-components-and-versions](https://docs.sealights.io/knowledgebase/setup-and-configuration/build-and-test-execution/integration-build/integration-build-explicit-components-and-versions "mention")

[running-tests](https://docs.sealights.io/knowledgebase/setup-and-configuration/build-and-test-execution/integration-build/running-tests "mention")
