I have inherited a cumulus ci project and can see that the process for creating scratch orgs and pushing releases to the packaging org is all set up.

However, it looks like some scripts are being used to push to our patch org.

The script in particular is doing this:

git checkout patch/5.49.x
git fetch --all
git pull
rm -R ./src.orig

#Create the permission set that will be wiped out before the upload to avoid errors
cp ./force-app/main/default/permissionsets/MY_Feature_Bulk_SMS.permissionset-meta.xml ./force-app/main/default/permissionsets/MY_DX_DO_NOT_PACKAGE.permissionset-meta.xml
cci flow run ci_master --org my-patch-5.49

I was surprised that CCI doesn't support the patch org deployment more directly.

What are the differences between deploying to our patch org and packaging org?

I would rather use something standard or follow a document for best practices, but I do not see direct support for patch orgs in the code or the docs?

1 Answer 1

cci flow run ci_master --org my-patch-5.49

This command represents CumulusCI deploying to a patch org. Patch orgs (and, for that matter, packaging orgs!) are not special from CCI's perspective. They're just orgs to which you authenticate, and which you can run automation against. You are free to name them whatever you wish; you're just responsible for linking up your CI jobs to the desired org.

CumulusCI's automation is oriented around building packages. It's not opinionated about whether that building takes place in a packaging org or a patch org.

CumulusCI does not prescribe a specific branching model for building patches. You may want to use a convention like the one you seem to have adopted, which uses a patch/ prefix (or any prefix distinct from your feature-branch prefix). This ensures that CumulusCI's automatic branch merge functionality doesn't touch these patch branches, since you have to carefully manage changes in that context.

The remainder of the script appears to just be ordinary Git operations (which you might run in a continuous integration job). I don't understand the line related to copying a Permission Set.

Disclosure: I am on the CumulusCI team.

  • Great! Thanks! That explains why I didn't see any mention of it. The previous dev is taking advantage of the %%NAMESPACE%% token. Does ci_master take care of replacing this?
    – digidigo
    Jan 31, 2023 at 18:37
  • @digidigo Yep! That's handled in all deployments automatically.
    – David Reed
    Jan 31, 2023 at 18:38
  • Perfect -- and last question. Would it be more common to create a flow here, rather than a script that calls ci_master flow?
    – digidigo
    Jan 31, 2023 at 18:39
  • 1
    Script. CCI won't do, e.g., Git pulls for you - so I think you're in the right place.
    – David Reed
    Jan 31, 2023 at 18:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .