How sfdo-tooling/cumulusci works
CumulusCI is a Salesforce application-development automation platform. The principal workflow is to invoke configured tasks and flows from the CLI, resolve project and org configuration, and execute Salesforce setup, testing, data, or deployment actions. Separate capabilities include dependency management, metadata transformations, browser automation, and MetaDeploy delivery. Edges supported by the README are cited there; source excerpts are limited, so some internal runtime links are marked dashed and unverified rather than asserted as observed calls.
Main entry points: tasks.py Task engine · runtime.py CLI runtime · cci.py Command line · flowrunner.py Flow runner
Components 21
Automation runtime
- Command line
cumulusci/cli/cci.py - CLI runtime
cumulusci/cli/runtime.py - Flow runner
cumulusci/core/flowrunner.py - Task engine
cumulusci/core/tasks.py
Project and org
- Project configuration
cumulusci/core/config/project_config.py - Org configuration
cumulusci/core/config/org_config.py - Credential keychain
cumulusci/core/keychain/base_project_keychain.py - OAuth client
cumulusci/oauth/client.py
Salesforce operations
- Dependency resolver
cumulusci/core/dependencies/resolvers.py - Metadata tasks
cumulusci/tasks/metadata - Metadata API
cumulusci/salesforce_api/metadata.py - Metadata transforms
cumulusci/core/source_transforms/transforms.py - Package operations
cumulusci/tasks/salesforce
Testing and data
- Bulk data tasks
cumulusci/tasks/bulkdata - Synthetic data
cumulusci/tasks/bulkdata/snowfakery.py - Browser automation
cumulusci/robotframework
Distribution and delivery
- GitHub workflows
cumulusci/tasks/github - MetaDeploy
cumulusci/core/metadeploy
Other components
- Developer / admin
- Salesforce org
- CI system
Connections 23
- Developer / admin → Command line: invokes
- Command line → CLI runtime: runs commands
- CLI runtime → Flow runner: starts flows
- Flow runner → Task engine: dispatches tasks
cumulusci/core/tasks.py - Task engine → Project configuration: uses configuration
cumulusci/core/tasks.py - Task engine → Org configuration: uses org config
cumulusci/core/tasks.py - CLI runtime → Credential keychain: loads credentials
- Credential keychain → OAuth client: supplies auth
- OAuth client → Salesforce org: authenticates
- Org configuration → Salesforce org: targets org
- Task engine → Dependency resolver: installs dependencies
- Task engine → Metadata tasks: runs metadata tasks
- Metadata tasks → Metadata API: deploys metadata
- Metadata transforms → Salesforce org: tailors metadata
- Task engine → Package operations: runs deployment
cumulusci/tasks/salesforce/BaseSalesforceApiTask.py - Package operations → Salesforce org: installs or deploys
- Task engine → Bulk data tasks: runs data tasks
- Bulk data tasks → Salesforce org: loads datasets
- Synthetic data → Salesforce org: loads synthetic data
- Task engine → Browser automation: runs browser tests
- CI system → Command line: runs automation
- Task engine → GitHub workflows: runs release tasks
- Task engine → MetaDeploy: exposes automation