Flow Reference#

CumulusCI’s suite of standard flows are grouped into various categories depending on their intended purpose.

Org Setup#

These are the primary flows for doing full setup of an org. They typically include a flow from the Dependency Management group, a flow from either the Deployment or Install / Uninstall group, and a flow from the Post-Install Configuration group.

dev_org#

Description: Set up an org as a development environment for unmanaged metadata

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_dev
    1) task: deploy_post
    2) task: update_admin_profile
4) task: snapshot_changes

dev_org_beta_deps#

Description: This flow is deprecated. Please use dev_org instead.

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_dev
    1) task: deploy_post
    2) task: update_admin_profile

dev_org_namespaced#

Description: Set up a namespaced scratch org as a development environment for unmanaged metadata

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_dev
    1) task: deploy_post
    2) task: update_admin_profile
4) task: snapshot_changes

install_beta#

Description: Install and configure the latest beta version

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) task: install_managed_beta
3) flow: config_managed
    1) task: deploy_post
    2) task: update_admin_profile
4) task: snapshot_changes

install_prod#

Description: Install and configure the latest production version

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) task: install_managed
3) flow: config_managed
    1) task: deploy_post
    2) task: update_admin_profile
4) task: snapshot_changes

qa_org#

Description: Set up an org as a QA environment for unmanaged metadata

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_qa
    1) task: deploy_post
    2) task: update_admin_profile
4) task: snapshot_changes

qa_org_2gp#

Description: Set up an org as a QA environment using a second-generation package

Flow Steps

1) flow: install_2gp_commit
    1) task: github_package_data
    2) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    3) task: install_managed
2) flow: config_qa
    1) task: deploy_post
    2) task: update_admin_profile
3) task: snapshot_changes

qa_org_unlocked#

Description: Set up an org as a QA environment using an unlocked package

Flow Steps

1) flow: install_unlocked_commit
    1) task: github_package_data
    2) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    3) task: install_managed
2) flow: config_qa
    1) task: deploy_post
    2) task: update_admin_profile
3) task: snapshot_changes

regression_org#

Description: Simulates an org that has been upgraded from the latest release of to the current beta and its dependencies, but deploys any unmanaged metadata from the current beta.

Flow Steps

1) flow: install_regression
    1) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    2) task: install_managed
    3) task: install_managed_beta
2) flow: config_regression
    1) flow: config_managed
        1) task: deploy_post
        2) task: update_admin_profile
3) task: snapshot_changes

Dependency Management#

These flows deploy dependencies (base packages and unmanaged metadata) to a target org environment.

beta_dependencies#

Description: This flow is deprecated. Please use the dependencies flow and set the include_beta option on the first task, update_dependencies. Deploy the latest (beta) version of dependencies to prepare the org environment for the package metadata

Flow Steps

1) task: update_dependencies
2) task: deploy_pre

dependencies#

Description: Deploy dependencies to prepare the org environment for the package metadata

Flow Steps

1) task: update_dependencies
2) task: deploy_pre

Deployment#

These flows deploy the main package metadata to a target org environment.

deploy_packaging#

Description: Process and deploy the package metadata to the packaging org

Flow Steps

0) task: dx_convert_from
   when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: create_managed_src
3) task: update_package_xml
4) task: deploy
5) task: revert_managed_src
6) task: uninstall_packaged_incremental

deploy_unmanaged#

Description: Deploy the unmanaged metadata from the package

Flow Steps

0) task: dx_convert_from
   when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
   when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
   when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
     when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
   when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes

deploy_unmanaged_ee#

Description: Deploy the unmanaged metadata from the package to an Enterprise Edition org

Flow Steps

0) task: dx_convert_from
   when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: update_package_xml
3) task: create_unmanaged_ee_src
4) task: deploy
5) task: revert_unmanaged_ee_src
6) task: uninstall_packaged_incremental

unmanaged_ee#

Description: Deploy the unmanaged package metadata and all dependencies to the target EE org

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged_ee
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx"
    1) task: unschedule_apex
    2) task: update_package_xml
    3) task: create_unmanaged_ee_src
    4) task: deploy
    5) task: revert_unmanaged_ee_src
    6) task: uninstall_packaged_incremental

Install / Uninstall#

These flows handle package installation and uninstallation in particular scenarios.

install_2gp_commit#

Description: Install the 2GP package for the current commit

Flow Steps

1) task: github_package_data
2) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
3) task: install_managed

install_prod_no_config#

Description: Install but do not configure the latest production version

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) task: install_managed
3) task: deploy_post

install_regression#

Description: Install the latest beta dependencies and upgrade to the latest beta version from the most recent production version

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) task: install_managed
3) task: install_managed_beta

install_unlocked_commit#

Description: Install the unlocked package for the current commit

Flow Steps

1) task: github_package_data
2) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
3) task: install_managed

uninstall_managed#

Description: Uninstall the installed managed version of the package. Run this before install_beta or install_prod if a version is already installed in the target org.

Flow Steps

1) task: uninstall_post
2) task: uninstall_managed

Post-Install Configuration#

These flows perform configuration after the main package has been installed or deployed.

config_apextest#

Description: Configure an org to run apex tests after package metadata is deployed

Flow Steps

1) task: deploy_post
2) task: update_admin_profile

config_dev#

Description: Configure an org for use as a dev org after package metadata is deployed

Flow Steps

1) task: deploy_post
2) task: update_admin_profile

config_managed#

Description: Configure an org for use after the managed package has been installed.

Flow Steps

1) task: deploy_post
2) task: update_admin_profile

config_packaging#

Description: Configure packaging org for upload after package metadata is deployed

Flow Steps

1) task: update_admin_profile

config_qa#

Description: Configure an org for use as a QA org after package metadata is deployed

Flow Steps

1) task: deploy_post
2) task: update_admin_profile

config_regression#

Description: Configure an org for QA regression after the package is installed

Flow Steps

1) flow: config_managed
    1) task: deploy_post
    2) task: update_admin_profile

Continuous Integration#

These flows are designed to be run automatically by a continuous integration (CI) system in response to new commits. They typically set up an org and run Apex tests.

ci_beta#

Description: Install the latest beta version and runs apex tests from the managed package

Flow Steps

1) flow: install_beta
    1) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    2) task: install_managed_beta
    3) flow: config_managed
        1) task: deploy_post
        2) task: update_admin_profile
    4) task: snapshot_changes
2) task: run_tests

ci_feature#

Description: Prepare an unmanaged metadata test org and run Apex tests. Intended for use against feature branch commits.

Flow Steps

0.5) task: github_parent_pr_notes
1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_apextest
    1) task: deploy_post
    2) task: update_admin_profile
4) task: run_tests
5) task: github_automerge_feature
   when: project_config.repo_branch and project_config.repo_branch.startswith(project_config.project__git__prefix_feature)

ci_feature_2gp#

Description: Install as a managed 2gp package and run Apex tests. Intended for use after build_feature_test_package.

Flow Steps

1) flow: install_2gp_commit
    1) task: github_package_data
    2) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    3) task: install_managed
2) flow: config_apextest
    1) task: deploy_post
    2) task: update_admin_profile
3) task: run_tests

ci_feature_beta_deps#

Description: This flow is deprecated. Please use ci_feature instead.

Flow Steps

0.5) task: github_parent_pr_notes
1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_unmanaged
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx" and not org_config.scratch
    1) task: unschedule_apex
    2) task: update_package_xml
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3) task: deploy
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    3.1) task: deploy
         when: project_config.project__source_format == "sfdx" and org_config.scratch
    4) task: uninstall_packaged_incremental
       when: project_config.project__source_format != "sfdx" or not org_config.scratch
    5) task: snapshot_changes
3) flow: config_apextest
    1) task: deploy_post
    2) task: update_admin_profile
4) task: run_tests
5) task: github_automerge_feature
   when: project_config.repo_branch and project_config.repo_branch.startswith(project_config.project__git__prefix_feature)

ci_master#

Description: Deploy the package metadata to the packaging org and prepare for managed package version upload. Intended for use against main branch commits.

Flow Steps

1) flow: dependencies
    1) task: update_dependencies
    2) task: deploy_pre
2) flow: deploy_packaging
    0) task: dx_convert_from
       when: project_config.project__source_format == "sfdx"
    1) task: unschedule_apex
    2) task: create_managed_src
    3) task: update_package_xml
    4) task: deploy
    5) task: revert_managed_src
    6) task: uninstall_packaged_incremental
3) flow: config_packaging
    1) task: update_admin_profile

ci_release#

Description: Install a production release version and runs tests from the managed package

Flow Steps

1) flow: install_prod
    1) flow: dependencies
        1) task: update_dependencies
        2) task: deploy_pre
    2) task: install_managed
    3) flow: config_managed
        1) task: deploy_post
        2) task: update_admin_profile
    4) task: snapshot_changes
2) task: run_tests

Release Operations#

These flows are used to release new package versions.

build_feature_test_package#

Description: Create a 2gp managed package version

Flow Steps

1) task: update_package_xml
   when: project_config.project__source_format != "sfdx"
2) task: create_package_version

build_unlocked_test_package#

Description: Create an Unlocked package version

Flow Steps

1) task: update_package_xml
   when: project_config.project__source_format != "sfdx"
2) task: create_package_version
3) task: promote_package_version

release_2gp_beta#

Description: Upload and release a beta 2gp managed package version

Flow Steps

1) task: create_package_version
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main

release_2gp_production#

Description: Promote the latest beta 2gp managed package version and create a new release in GitHub

Flow Steps

1) task: promote_package_version
2) task: github_release
3) task: github_release_notes

release_beta#

Description: Upload and release a beta version of the metadata currently in packaging

Flow Steps

1) task: upload_beta
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main

release_production#

Description: Upload and release a production version of the metadata currently in packaging

Flow Steps

1) task: upload_production
2) task: github_release
3) task: github_release_notes

release_unlocked_beta#

Description: Upload and release a beta 2gp unlocked package version

Flow Steps

1) task: create_package_version
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main

release_unlocked_production#

Description: Promote the latest beta 2GP unlocked package version and create a new release in GitHub

Flow Steps

1) task: promote_package_version
2) task: github_release
3) task: github_release_notes