Solutions Deployment Pipelines in Power Platform (I)
With more organization adopting Power Platform (PP) in developing business critical applications, it is important to factor Application Lifecycle Management (ALM) into the development journey for your organization PP projects. Various ALM tools available in Power Platform includes :
ALM Accelerator, Deployment Pipelines, GitHub Workflows , Azure DevOps Pipelines
All these tools basically deliver the same results but with different processes
This article will focus on Deployment Pipelines for ALM in Power Platform, we will go through setting up your Pipelines and adding deployment stages for a complete ALM Cycle
Prerequisites
ALM Supported Environments ( Development — Test/QA — Production)-Note :(Microsoft documentation stated that Managed Environment are only supported for pipeline environment but at the time of publishing this article unmanaged environment are supported in deployment pipeline)
New Environment for your pipeline(Microsoft recommends an environment host for pipeline)
Azure AD Security group (This is only necessary to support ease of grant access and security roles to your makers)
Stage 1 : Setting up your Pipeline Environment
Create a new environment from your Power Platform Admin Centre
Dataverse Database must be added to your environment
Dynamics 365 Apps must be enabled for the environment
Set the environment to a Managed Environment
Note : If developers environment is selected as the type of environment both dataverse and dynamics 365 apps are enabled
Install Deployment Pipeline Application to the environment
Select the Pipeline Environment > Resources > Dynamics 365 Apps
> Install Apps > Power Platform Pipelines
Note : This takes a few minutes to install the application and the tables in the environment
Add Security roles for the users and administrator in the environment
Deployment Pipeline User: Has privileges to run pipelines that have been shared with them.
Deployment Pipeline Administrator: Has full control over all pipeline configuration, creating and editing pipelines
Stage 2 : Setting Up Pipelines
Sign in to make.powerapps.com > Select the pipeline environment > Solutions
Selected Managed Solutions > App Deployment Model App > Deployment Pipeline Configuration > Play
Adding Deployment Environments to your Pipeline
A pipeline can have one development environment and multiple Target Environments with deployment stages to link the them together
For more guidance on Environment strategy for ALM from Microsoft
Add Development and Target Environments
Environments > New
Enter a name and select Development Environment
Get environment Id from the URL or the Power Platform Admin Center
Environment are added after a successful validation
Create a new pipeline and link environments
Select Pipelines > New > Enter Pipeline name and Description > Save
Link Development Environment
Create a Deployment Stage
Previous Deployment stage will be empty as this is the first deployment stage in the Pipeline and Target Deployment Stage Environment ID will be the Test Environment (First Deployment)
Create another Deployment stage :
Previous Deployment Stage (The first deployment stage to Test Environment
Target Deployment Environment — Production Environment (Second Deployment Stage
This will create a pipeline with 3 Environments :
Starting from Development Environment > Test Environment > Production Environment
Note : The Pipeline will be activated in the environment selected as your Development Environment
Share pipeline with the Read Privileges for users / groups
Using your Pipeline for ALM
Go to your Development Environment
Select an Unmanaged Solution
Common fix to error encountered by users
- Ensure users have access to the Pipeline Environment (Basic User and Deployment Pipeline User Security Role)
- Ensure users have access to the development environment
- Only Unmanaged solutions can be exported and deployed
- Ensure users have access to the target environments (This can be also be resolved with delegated deployment)
- Ensure the pipeline is shared with the users/groups