Hello,
I am looking for insight as to how others are managing their Power Platform environments in terms of development. I have been building Power Apps professionally for about 2 years now and up until a few months ago I have followed the process of simply creating a custom solution, adding components to said solution, export, save zip to local drive, import into Production. Obviously this led to chaos the more we scaled out as now we have many environments and I had tons of zip files floating around on my local machine with version numbers that didn't match up with what was currently deployed.
I have since moved to Azure DevOps. It is my first time using DevOps or any other sort of source control so I have been reading up a ton about it's uses as well as how Power Platform can integrate into it. I have also been researching different branching strategies and I decided to give the release branching strategy a shot first, which I now feel is way too complex for what I need.
Branch structure for a release is as follows:
1) main branch
2) develop branch based on main
3) branch off develop to create release branch
The development process I follow goes like this:
1) Clone develop branch to VS Code
2) Make changes in Dev environment and package into custom solution
3) Use terminal commands to export and unpack solution directly into my repo folder
4) Commit changes to develop branch
5) Branch off develop to create release branch; DevOps pipeline triggers on release branch that creates a JIT Build environment, packs code from branch into zip, imports solution, exports as managed, publishes pipeline artifact
6) Release pipeline triggers and takes artifact and deploys to QA
7) Second release pipeline deploys to Prod (this one is manually triggered after QA testing is complete)
😎 Merge release branch to main branch. Merge release branch to develop branch
I thought at first that this would be a good process to follow however I'm finding myself spending way too much time debugging the pipelines themselves or forgetting to merge back into main and develop after each and every release, even when a release is a tiny change.
Sorry for the long winded post, was hoping that I could get some insight into how others are tackling the development process.
Thanks in advanced!