Saturday 12 December 2020

Automate CRM Solution Deployment

 In this blog I am going to explain step by step guide to automate CRM solution (Unmanaged/Managed) deployment from DEV to SIT, UAT & Prod. I will use devops to demonstrate this use case.

Login to dev.azure.com-> Create new project

DevOps01

Once project created successfully, Navigate to Pipeline and create new pipeline. Select Use classic editor option.

DevOps02

Once you click on Use Class Editor link, it will open new dialog and select Agent. Azure devops will automatically populate for you. You can use custom built Agent as well.

DevOps3

Now we need to install Power Devops Tool by Wael Hamze. Once installed add this in your pipeline.

DevOps04

Next we have add Ping Environment task from Power Devops Tools to check if Dynamics CRM instance is up and running. We need to provide CRM Connectiong String in below format

AuthType=Office365;Username=username@name.onmicrosoft.com; Password=CRM Online Password;Url=https://CRMORG.crm8.dynamics.com

DevOps05

Then we have to add SetVersion task to set the CRM solution version number based on build number. Click on Options tab and set Build Number with as bewlo format. And use this in Set Version task in Version Number as $(Build.BuildNumber).

1.0.0.$(Rev:r) - Last digit of version number will be dynamically changed for each run.

Check this pagefor Azure Devops predefined variables

DevOps15

Now add Publish Customizations task to publish any changes before exporting the solution. It takes only connection string parameter.

DevOps16

Next add Export Solution Task from power devops tool and provide Connection string as mentioned in above steps and Solution Name which you want to take deploy.

Select whether you want to export managed or unmanaged solution. Also select additional General settings to be exported as part of the solution.

DevOps06

DevOps07

Next add Publish Build Artifact task to publish the solution zip file to Azure pipeling Artifact which will be used by Release to deploy to SIT, UAT & Prod. Select Path to publish as $(Build.ArtifactStagingDirectory) which we have used in export solution task. Publish Build Artifact will copy file from this location to Azure pipeline Artifact.

DevOps19

Pipeline is completed for exporting the solution and publishing the solution file to Artifact. Run this pipeline manually and verify Solution Zip file is published to Artifact.

DevOps14

Create Release to Deploy Solution to Target Environment

Click on Releases from left menu and create new release for UAT. And select Artifact where solution zip file is published.

DevOps13

Next go to Tasks and add below tasks in Releases.

  1. Add Power Devops Tools installer
  2. Add Ping Environemnt - Provide Connection string of Target Environment
  3. Add Import Solution - Provide Connection string of Target Environment and select Solution file as shown below

DevOps18

Once done, Click on Create Release to verify solution Deployment to Target Environment.

DevOps20

To downloag Solution Import Log file, Go to Release window and click on Download All Logs.

DevOps21

Hope this helps!

Hide New... button on lookup controls in model-driven apps

  The 'New ...' button is shown upon opening the lookup search dialog whenever the logged in user has at least user create privileg...