How bhom/ci_toolkit works
CI_Toolkit supplies independent GitHub Actions checks for BHoM repositories: workflows invoke checks that resolve/build dependencies, run analysis or tests, and report results. The principal workflow is a repository pull request triggering selected checks; serialisation and versioning additionally use .NET runners, while compliance and dataset checks have distinct analysis stages. Shared actions provide dependency resolution, runner preparation, change filtering, solution discovery, configuration inference, and optional credentials. Runner links follow the README and sampled entry points; unsampled action internals are represented only where documented.
Main entry points: ci-build Build check · prepare-runner Runner preparation · ci-compliance Compliance check · ci-serialisation Serialisation check
Components 23
Workflow entry
- Repository workflow
- Workflow templates
templates
CI checks
- Build check
.github/actions/ci-build - Compliance check
.github/actions/ci-compliance - Dataset tests
.github/actions/ci-dataset-tests - Serialisation check
.github/actions/ci-serialisation - Versioning check
.github/actions/ci-versioning - Unit tests
.github/actions/ci-unit-tests - Format check
.github/actions/ci-format
Shared plumbing
- Dependency resolver
.github/actions/resolve-dependencies - Runner preparation
.github/actions/prepare-runner - Changed-file filter
.github/actions/compute-changed-files - Solution discovery
.github/actions/discover-solution - Config inference
.github/actions/infer-verification-config - Token minting
.github/actions/mint-dep-token
Analysis runners
- Source compliance
tools/ComplianceRunner/src/ComplianceRunner - Dataset compliance
tools/ComplianceRunner/src/DatasetComplianceRunner - Dataset test runner
tools/ComplianceRunner/src/DatasetTestRunner - Serialiser runner
tools/SerialiserRunner/src/SerialiserRunner - Versioning runner
tools/VersioningRunner/src/VersioningRunner
Results
- Pull request results
Other components
- BHoM assemblies
- GitHub Actions
Connections 42
- Workflow templates → Repository workflow: copied into
- Repository workflow → Build check: invokes
- Repository workflow → Compliance check: invokes
- Repository workflow → Dataset tests: invokes
- Repository workflow → Serialisation check: invokes
- Repository workflow → Versioning check: invokes
- Repository workflow → Unit tests: invokes
- Repository workflow → Format check: invokes
- Build check → Dependency resolver: resolves dependencies
- Build check → Solution discovery: finds solution
- Build check → Changed-file filter: filters changes
- Compliance check → Changed-file filter: filters changes
- Dataset tests → Changed-file filter: filters changes
- Serialisation check → Changed-file filter: filters changes
- Versioning check → Changed-file filter: filters changes
- Unit tests → Solution discovery: finds solution
- Build check → Runner preparation: prepares runner
- Compliance check → Runner preparation: prepares runner
- Dataset tests → Runner preparation: prepares runner
- Serialisation check → Runner preparation: prepares runner
- Versioning check → Runner preparation: prepares runner
- Unit tests → Runner preparation: prepares runner
- Dependency resolver → Token minting: requests credentials
- Serialisation check → Config inference: infers configuration
- Versioning check → Config inference: infers configuration
- Compliance check → Source compliance: runs analysis
- Compliance check → Dataset compliance: runs dataset rules
- Dataset tests → Dataset test runner: runs fixtures
- Serialisation check → Serialiser runner: runs comparison
- Versioning check → Versioning runner: runs historical scan
- Serialiser runner → BHoM assemblies: loads assemblies
- Versioning runner → BHoM assemblies: loads assemblies
- Dataset test runner → BHoM assemblies: executes tests
- Source compliance → Pull request results: emits findings
- Dataset compliance → Pull request results: emits findings
- Dataset test runner → Pull request results: emits findings
- Serialiser runner → Pull request results: reports regressions
- Versioning runner → Pull request results: reports failures
- Build check → Pull request results: reports status
- Unit tests → Pull request results: reports status
- Format check → Pull request results: reports status
- GitHub Actions → Repository workflow: runs on pull request