cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Cbc03
Frequent Visitor

PowerApps development process best practices

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!

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
cchannon
Super User
Super User

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.

View solution in original post

2 REPLIES 2
cchannon
Super User
Super User

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.

rexkenley
Kudo Commander
Kudo Commander

I recommend this approach. This is MS used and approve.

http://releaseflow.org/

Helpful resources

Announcements
Ignite 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Users online (1,482)