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!
I recommend this approach. This is MS used and approve.
http://releaseflow.org/
From the sound of it, you're a small (maybe even one person?) operation. Release branching isn't only for large teams, but you certainly get the most benefit from it that way. For very small teams, you usually don't need all that complexity.
Think about the benefits you're trying to get here: You want to manage a lot of individual solutions. You want to keep your source code secure and accessible. You want to be able to reliably delivery the right solution to the right environment. All of those are achieved simply by storing your code in DevOps and having a simple push-button release pipeline.
Why not try just keeping your source code in DevOps with a simple folder for "Solutions" and maybe a folder in there for "Latest" then have a pipeline that pushes the solution in latest to your target environment when you manually run it? No branching, no CLI Unpack, no build environment to re-pack... All those things are fantastic - I am not saying they aren't useful - but it sounds like you don't really need them and they are causing you headache.
Simplicity is often the best path.
WarrenBelz
94
Most Valuable Professional
Michael E. Gernaey
72
Super User 2025 Season 1
mmbr1606
71
Super User 2025 Season 1