CumulusCI icon indicating copy to clipboard operation
CumulusCI copied to clipboard

Enhance the "-o" option of "cci flow run" to accept "project__custom" attribute values

Open RupertBarrow opened this issue 2 years ago • 0 comments

Feature Type

I'm interested in functionality that solves a current problem or limitation in how CumulusCI works.

Does your feature request solve a current problem?

When running a flow from the CLI (eg cci flow run ci_feature) I can pass task options such as -o mytask__myattribute myvalue but I cannot pass project custom attributes which I want to overload, such as -o project__custom__mycustomattribute myothervalue

Describe the solution you'd like

I have an unlocked package which has 2 different installation or test procedures depending whether it is installed on our EU production org or our US production org. I have defined a project__custom__destinationcustom attribute with values "EU" or "US".

When running cci flow run ci_feature, I would like to be able to add an option to run ci_feature for the EU or the US, i.e. :

  • cci flow run ci_feature -o project_custom_destination "US", or
  • cci flow run ci_feature -o project_custom_destination "EU"

Ultimately, I would like to run this in Github Actions and be able to run matrix tests for the EU and US destinations.

Describe alternatives you've considered

As my tests and installation procedures involve installing a dependent package which depends on the destination (EU or US), I tried to introduce a "when" clause in the project__dependencies, which is not possible either.

I then tried to pass environment variable values and read them in cumulusci.yml, without success.

I ended up creating custom flows just to run standard CumulusCI flows with a different destination (EU or US). This works, but it involves a lot of duplicating and overloading standard flows, which is much less readable, maintainable and extendable to a larger number of destinations.

Additional context

No response

RupertBarrow avatar Jan 17 '23 15:01 RupertBarrow