Skip to main content

Power Apps Application Life Cycle Process For Release Management

SYNOPSIS

    The goal of this blogger is to aid in the ALM process for model-driven-apps.

DESCRIPTION

    Most of the projects are adopting to ALM process where it can follow the agile methodologies and release the project in sprint models. so that release can be smooth and it can be easily tracked.

To achieve this sprint model development. Developers need to create sprint wise solutions in the D365 CRM to move them to the higher environments based on sprint cycle. They need to check in their code into the git repository using git commands to track the changes. All the changes in the repository need to be linked with azure build and release pipelines to release those changes to higher environment. 

PREREQUISITES

 1. Need to have Azure Devops, Power apps and D365 CRM subscription with global admin role for setup. On Local Machine : Need to Install Vs code, Git, Power Apps CLI, Azure CLI

2. Git should be installed

3. Powerapps CLI should be installed - https://docs.microsoft.com/en-us/powerapps/developer/data-platform/powerapps-cli#solution

3.1 After installing Powerapps CLI, run the command: pac install latest

4. Azure CLI should be installed - https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?tabs=azure-cli

4.1 After installing Azure CLI, install azure-devops extension by running the command: az extension add --name azure-devops

4.2 Run: az login --allow-no-subscriptions

4.3 Run: az devops configure -d organization=https://dev.azure.com/<Proj>

4.4 This command enables using commands with git pr alias. Run: az devops configure --use-git-aliases true

4.5 Run: az devops configure -d project=<test>

5. Copy of the git repo should be present



PROCESS: 

Developers need to create solutions on Power Apps like MDA, Flows, Workflows, Portals. They need to work on these solutions in the dev environment in unmanaged form based on the sprint tickets.

Once the sprint is completed, they need to export the solution using pac commands and push those changes to GIT repository using git commands

Once all the changes are in GIT with in the sprint branch. 

Release Manager should create a pull request to Test branch, so that all the changes from the test branch will be release to the respective test environment thru Pipelines.

a. Creating branches

on Azure Devops : 


Need to create sprint branch and set the policies to restrain commit directly to the branch
Once sprint branch is created, Developers need to create their own branches from the sprint branch and commit their changes to the child branches and create a pull request to the sprint branch.


Once the branches are created we need to follow the strategy 

Main branch should contain all the changes which are going to production

From Main branch  -- User acceptance branch need to be created where it need to be pointed to UAT

From UAT branch - Test branch need to be created 

From Test branch - Sprint branch need to be created

From Sprint branch - all the developers need to create respective child branches and commit their changes to the child branch and create a pull request to the sprint branch.

Developers need to export the solutions like MDA, Flows, Workflows, Portal extract them and push to the git

From Local Machine : in visual studio command line interface

need to check weather power apps and azure cli are installed

once installed, Need to create Authentication to the CRM Organisation

pac auth create --url <https://crmorg.crm.dynamics.com>

using credentials login to the environment and export the respective solution in to the local repository

pac solution export --path <c:\Users\Documents\SolutionMDA.zip> --name SampleComponentSolution --managed true --include general

once solution is exported unpack the solution and add it to the git repo 

pac solution unpack --zipfile C:\SolutionMDA.zip.zip --folder .\SolutionMDAUnpacked\.

push these unpacked changes to the git repository and raise a pull request to the test branch.

From Test branch pipelines will be configured

Pipeline Setup

Make sure you have installed the Power apps tools in the market place

Once the repo is ready, In the pipelines need to create a build pipeline and create a artifact
pointing to the solution in the repo need to create a build pipeline and need to pack the solution and push the managed solution to the build artifact

from build artifact, need to create a release pipeline with different stages like test, uat, prod

each stage should be linked with each other and need to create this stage on build pipeline to capture the latest build pipeline artifact

Release the changes to the respective environment and this will repeat for every sprint








Comments

Popular posts from this blog

Power Portals Deployment Using Git Repos from VS Code

  Open Visual Code - Open New Workspace  In Vs Code - Extension - Search for -  Power Platform VS Code Extension -> Install  Open Terminal - check for command  pac  (It gives the version of power cli) check for Authorization pac auth list   ( if list is there delete the list for fresh start) pac auth delete --index 1     ( if no list is found create auth ) pac auth create --url https://org.crm.dynamics.com/   ( it will ask for user name and password  ) After successful of creation  -  check for the auth pac auth list  To download portals check for paportal Microsoft Power Platform CLI command for portals is “paportal”. on the terminal - enter pac pac ( if paportal is there check for the portal list ) pac paportal list  ( It will give the website ids of paportals of the organisation ) Connected to...Portal Environment  Index      WebSiteId          ...

Environment Specific Deployment Profiles For Power Portals CLI Upload

Upload portal customisation using Environment specific portals deployment profile.  Example: Deployment profiles for Development, UAT, PROD The deployment Profile allows you to define a set of variables for the environment in YAML format. If you're creating PROD profile, you can create file under deployment-profiles with the name "PROD.deployment.yml" (that is, <profileTag>.deployment.yml).  And you can run command with tag (<profileTag>) to use this profile: example: pac paportal upload --path "X:\portals\starter-portal" --deploymentProfile PROD In this file, you can have the table (entity) name with table ID, list of attributes, and the values that you want to override while uploading the portal configuration using the deploymentProfile parameter adx_contentsnippet:     - adx_contentsnippetid: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx       adx_name: abc\prod       adx_value:  https://abc.com/xyz/prod    - adx_...