Azure / azure-sdk-tools

Tools repository leveraged by the Azure SDK team.
MIT License
112 stars 172 forks source link

Set up code flow for Power Apps #4798

Open live1206 opened 1 year ago

live1206 commented 1 year ago

There are 3 environments for us right now: Dev, Pre and Prod.

Dev is used for daily development, Pre is used for integration test before Prod, Prod is used for Production usage.

So, Dev corresponds to dev branch. Pre and Prod corresponds to the same branch main.

power-apps-backup-dev is used to backup code base of Dev environment into dev branch(the exported solution of Dev is unmanaged). The pipeline will create a PR to dev branch and auto-merge it: Pull request 465: Backup code base for PowerApps - dev - Repos (azure.com)The source code of dev branch can be restored to Dev environment by power-apps-restore-dev.

We need to change PPE from managed solution to unmanaged solution, so that both dev and main branch contain the source code of unmanaged solution, they can be merged back and forth. power-apps-build-ppe-new is going to be used to export unmanaged solution from Dev environment and unpack it into source code and create a PR to main: Pull request 466: Backup code base for PowerApps - Repos (azure.com)

When the PR to main is merged, we have the latest code base of Dev in main branch now. power-apps-deploy-ppe-new will be triggered to deploy the latest code in main to Pre environment. When we verify everything is working in PPE, we can export from PPE as managed solution and deploy to Prod.

Scenarios to cover:

Hot fix: Fix in Dev environment -> deploy and verify in PPE -> deploy to Prod, this will deploy the latest change of things in-development, we can schedule the deploy to Prod biweekly like Scheduler App. Or if urgent fix, we can have a new environment, branch out from main, pack the code and deploy to the new environment, do the fix there and merge back to main, then deploy to Prod. Feature development with breaking-change: create a feature branch from dev, and deploy the code base to newly created Feature environment. Once dev work is done, merge code base from Feature branch to dev(handle conflicts during the merge, code review as well) -> deploy and verify in PPE -> deploy to Prod Notes:

Need to convert PPE from managed solution to unmanaged solution to make both dev and main contain code base of managed solution. We need to delete solution in PPE firstly and import unmanaged solution We SHOULD NOT change anything in PPE even it is unmanaged, it will be replaced by Dev anyway PR to dev branch is auto completed since it is just for daily backup Code review is only happening during the PR to main branch and feature branch to dev branch For all CIs, we need to specify solution name, it will create a new folder for the solution in the code base Folder structure of the app files: Microsoft Power Platform CLI canvas command - Power Platform | Microsoft Docs

Code merge strategy: Microsoft Power Platform CLI canvas command - Power Platform | Microsoft Docs

live1206 commented 1 year ago

This is blocked for now since we need stable PPE to test management-plane feature. @maririos As offline discussed, it would be great if you can help to list the data dependencies of Scheduler App in PPE dataverse. We can avoid data missing while work on this.