Continuous Integration (CI)
Continuous Integration (CI) is the name given to the process of assisting our PR checks and resolving uncertainty in code status.
CI checks are built and maintained by the BHoM CI/CD team, but are operated automatically by our CI systems (including, but not limited to, AppVeyor, Azure DevOps and associated bots1).
The aim of CI checks is to increase confidence in our code, without unduly hindering our ability to prototype, develop, and extend the BHoM.
The pages within this section detail the CI checks we currently have operating, so that everyone can see how the checks are running and help ensure their PRs pass the checks.
|Check Core||BHoMBot||Trigger by PR comment
|Check Installer||BHoMBot||Triggered by PR comment
|Check Project Compliance||BHoMBot||Triggered by PR Comment
|Check Code Compliance||BHoMBot||Triggered by PR Comment
|Check Documentation Compliance||BHoMBot||Triggered by PR Comment
|Check Copyright Compliance||BHoMBot||Triggered by PR Comment
|Check Dataset Compliance||BHoMBot||Triggered by PR Comment
|Check Branch Compliance||BHoMBot||Triggered by PR Comment
|Check Unit Tests||BHoMBot||Triggered by PR Comment
|Check Null Handling||BHoMBot||Triggered by PR Comment
|Check Serialisation||BHoMBot||Triggered by PR Comment
|Check Versioning||BHoMBot||Triggered by PR Comment
|Check Ready To Merge||BHoMBot||Triggered by PR Comment
|Check Compliance||BHoMBot||Triggered by PR Comment
|Check Required||BHoMBot||Triggered by PR Comment
The following flags may be provided when requesting a check to request specific behaviour from the bot when running your requested check. One or more flags may be used at any one time - for example to trigger a full, forced, versioning check, you could use the command
@BHoMBot check versioning -force -full. All flags are prepended by a dash (
-). To see how an argument will affect a check, see the individual check page.
|-force||Requires a check to run even if it could be bypassed. For example, if a pull request does not change any
|-quick||Requests that the check run in a shortened format if available. For example, the Versioning check can opt to only compile the code in the pull request if no other repositories are depending on the work, allowing for a quicker versioning check compared to the default which will compile all the code used by the installers.||
Use of CI checks
Not all checks are required on all repositories or on all branches, depending on the lifecycle state of the repository. The table below indicates which checks are required for a given repository state.
|Ready to Merge|
1 See more notes on our approach to using and interacting with bots and automated processes as part of our Code of Conducts.