I don't understand how the Flexible Environments should be managed
Issue description
I’m trying to understand how flexible environments fit into our workflow. We’re in the middle of a feature that involves both code refactoring and content updates, and we’d like to develop it without interrupting our usual Umbraco Cloud pipeline for day to day housekeeping and minor fixes. A flexible environment seems like a suitable way to isolate this work, but I’m not sure where to start.
Right now we use the CI/CD API to deploy the main branch of our private repo to Umbraco Cloud, following the standard:
private-repo:main → [CI/CD] → Cloud Dev → Cloud Stage → Cloud Prod
If I create a flexible environment branched off development, what’s the proper way to deploy the feature/new-big-feature branch from our private repo into that flexible environment?
In summary, my ideal setup is:
private-repo:main → Cloud Dev → Cloud Stage → Cloud Prod
private-repo:feature/new-big-feature → Cloud Flexible
Could you clarify the deployment steps for that feature branch into a flexible environment?
Hi @james-whittington1
We understand the question - the thing is that the CICD feature is not yet supported with the flexible environments feature. It is in our backlogs and is one of the next improvements we are going to do to the CICD feature. We don't have an EAT yet though.
When it comes, you will be able to specify which environment to tarter your CICD deployments to. We will end up having to figure out exactly that will look, in terms of how you should setup your private repository settings so i.e. after a flexible environment has been merged you wont accidentally continue pushing to it.
Kind regards - Mikkel
@mikkelhm
Great to know work is underway to make this easier, it will be a massive productivity boost for our workflow.
I'm the meantime is there any way to support what we're trying to do? I wouldn't even be opposed to checking out the flexible branches repo (if this is possible) and merging the changes in locally.
Would love to hear any ideas that mean we get the feature branch onto the flexible instance without hitting the development instance.
Hi @james-whittington1
If using the current CI/CD flow it is not possible to do what you want - it only supports targeting the left most environment of the mainline of environments (mainline == dev/staging/live).
That said the flexible environment is just an environment like any other on Umbraco Cloud so it does have its own repository, which you have access to. When using the CI/CD flow we take your changes and copy those into the repository that the cloud environment has, You could do that manually and commit directly to the flexible environments git repository.
Remember that each environment you have on a Umbraco Cloud is its own seperate git repository. You could do anything to it - but at some point when the repository needs to be reintegrated, it needs to be mergable to the target environment on the mainline. This can also end up being a manual merging task, if we cant auto-merge it.
Hi @mikkelhm ,
I just heard about this great new feature, the flexible environments. And read the documentation about it.
But even without the CI/CD approach it is not clear to me how I could/should use it to develop locally a new feature.
How do I connect from my local machine to the new Cloud Flexible environment? And how do I push my local code changes to the Cloud Flexible environment, instead of to the main line Cloud Dev environment? (and how can a collegue pull changes from the Cloud Flexible environment to his local develop environment?)