Giter VIP home page Giter VIP logo

devkeydet / dyn365-ce-devops Goto Github PK

View Code? Open in Web Editor NEW
89.0 35.0 28.0 55 KB

DevOps for Dynamics 365 Customer Engagement (CE) is becoming a popular topic. The goal of this project is to help Dynamics 365 CE solution builders understand and accelerate their implementation of DevOps practices with Dynamics CE and VSTS.

License: MIT License

devops continuous-integration continuous-delivery continuous-deployment crm dynamics dynamics-365 dynamics-crm msdyn365 build-automation

dyn365-ce-devops's People

Contributors

devkeydet avatar geerzo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dyn365-ce-devops's Issues

Backup of instance is gone after "reset" via "delete/create new instance" approach

As of the timestamp on this comment, there is a a known limitation of the current API:
https://docs.microsoft.com/en-us/rest/api/admin.services.crm.dynamics.com/

It does not support instance reset (which is available through the admin center ui). One has to mimic a "reset" by deleting the instance and creating a new one. The side effect of this is that backups for the deleted instance disappear. Which effectively renders the act of backing up before "resetting" useless. The correct solution to this problem is for the management API to support reset because backups are kept during a reset when performed through the Dynamics 365 admin center ui. Please vote up the feature request here:
https://ideas.dynamics.com/ideas/dynamics-crm/ID0002981

Restore from backup

Demonstrate restoring an instance from backup before deploying a new build to it. This is a common scenario for those who want to deploy their customizations on top of a previous version of an already deployed version.

Mapping Plugin/WebResource code

Hello,

I am exactly following your GitHub blog and videos and i got everything working in my environment. We created a new visual studio solution and adding all CRM solutions as website projects inside it (thus we are not storing plugin/webresource code within same solution or repository).

I am getting errors in the map configurations under spkl.json file of the project. Since plugin code is not part of the solution, what should the map "from", "to" be in spkjl.json file?

Is there a way i can download the plugin/webresource code into my project from CRM solution and thus reference the code in map?

Thanks in advance

Error finding solution.xml file path

Hi,
I am seeing the following failure when the MSCRM pack solution is running:
[error]Cannot find path 'D:\a\1\s\SolutionPackage\package\Other\Solution.xml' because it does not exist.

How is it resolving the file path to D:\a\1\s - do I need to update a variable or config file?

I get this error referencing CrmAsyncRequestResponseSample projects.

Thanks
Andy

CRM Package Deployer Error

Hey
Great work! But I'm getting an error in the "Primary Release - Dynamics Only" script:
2017-12-21T10:29:40.3009882Z ##[section]Starting: Deploy Dynamics 365 Package and Data using Package Deployer 2017-12-21T10:29:40.3013694Z ============================================================================== 2017-12-21T10:29:40.3013910Z Task : MSCRM Package Deployer 2017-12-21T10:29:40.3014087Z Description : Deploys a CRM Package using the CRM Package Deployer PowerShell Cmdlets 2017-12-21T10:29:40.3014250Z Version : 9.0.8 2017-12-21T10:29:40.3014391Z Author : Wael Hamze 2017-12-21T10:29:40.3014728Z Help : For more information on CRM Package Deployer: https://technet.microsoft.com/en-us/library/dn647420.aspx 2017-12-21T10:29:40.3014926Z ============================================================================== 2017-12-21T10:29:58.0977513Z PackageDeployer Information: 8 : Starting Config Reading process: 2017-12-21T10:29:58.1120094Z PackageDeployer Information: 8 : ReadingConfig from : D:\A\R1\A\PRIMARY BUILD\DROP\DEPLOYMENTPACKAGE\BIN\RELEASE\PkgFolder\ImportConfig.xml 2017-12-21T10:29:58.1130735Z PackageDeployer Verbose: 16 : Unpacking config 2017-12-21T10:29:58.1848221Z PackageDeployer Information: 8 : Reading Solutions.. Please wait 2017-12-21T10:29:58.2945457Z PackageDeployer Verbose: 16 : Cleaning up Temp Working Directory - d:\a\_temp\gspbiv3u.b2p 2017-12-21T10:29:58.3185988Z PackageDeployer Information: 8 : Found One Custom Extension 2017-12-21T10:29:58.9084435Z PackageDeployer Information: 8 : Deployment Target Organization ID: 46c41d38-7e13-46d2-a0c1-6c7fae7654f6 2017-12-21T10:29:58.9092746Z PackageDeployer Information: 8 : Deployment Target Organization UniqueName: orgca8eb048 2017-12-21T10:29:58.9100943Z PackageDeployer Information: 8 : Deployment Target Organization Version: 9.0.0.3172 2017-12-21T10:29:58.9115281Z PackageDeployer Information: 8 : Deployment Target Organization Uri: https://avs100.api.crm4.dynamics.com/XRMServices/2011/Organization.svc 2017-12-21T10:29:58.9125277Z PackageDeployer Information: 8 : Deployment Target Organization Time marker: 12/21/2017 10:29:58 +00:00 2017-12-21T10:29:58.9168918Z PackageDeployer Information: 8 : Completed Config Reading process 2017-12-21T10:29:59.3656712Z PackageDeployer Information: 8 : Executing OverrideSolutionImportDecision Custom code 2017-12-21T10:29:59.3665581Z PackageDeployer Information: 8 : Processing Solution AsyncRequestResponseSample(AsyncRequestResponseSample) - Inbound version: 1.0.0.1 - Deployed Version 1.0.0.1, System Determined Import Action: SkipSameVersion 2017-12-21T10:30:46.8949035Z PackageDeployer Information: 8 : Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:47.1102463Z PackageDeployer Information: 8 : Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:47.1331017Z PackageDeployer Information: 8 : Reading OverrideDataImportSafetyChecks Custom Setting 2017-12-21T10:30:47.1883429Z PackageDeployer Information: 8 : Reading OverrideDateMode Custom Setting 2017-12-21T10:30:47.1884038Z PackageDeployer Information: 8 : Reading OverrideDataTimestamp Custom Setting 2017-12-21T10:30:52.4535656Z PackageDeployer Error: 2 : Message: Failed to execute Post Import Actions - Exception Raised 2017-12-21T10:30:52.4536479Z Source : DeploymentPackage 2017-12-21T10:30:52.4536831Z Method : AfterPrimaryImport 2017-12-21T10:30:52.4537205Z Date : 10:30:52 AM 2017-12-21T10:30:52.4537530Z Time : 12/21/2017 2017-12-21T10:30:52.4537941Z Error : Method not found: 'Microsoft.Xrm.Tooling.Connector.CrmServiceClient Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.ImportExtension.get_CrmSvc()'. 2017-12-21T10:30:52.4538347Z Stack Trace : at PackageDeployer.PackageTemplate.AfterPrimaryImport() 2017-12-21T10:30:52.4538756Z at Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageCore.ImportCode.BaseImportCustomizations.ExecutePostImportActions() 2017-12-21T10:30:52.4539151Z ====================================================================================================================== 2017-12-21T10:30:52.4539427Z 2017-12-21T10:30:52.4607405Z PackageDeployer Information: 8 : Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:52.8800344Z ##[error]The pre-import process failed: Method not found: 'Microsoft.Xrm.Tooling.Connector.CrmServiceClient Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.ImportExtension.get_CrmSvc()'. 2017-12-21T10:30:53.0209201Z Locating log file: d:\a\r1\a\Primary Build\drop\DeploymentPackage\bin\Release\Microsoft.Xrm.Tooling.PackageDeployment-2017-12-21.log 2017-12-21T10:30:53.0232338Z Writing Contents of Log File... 2017-12-21T10:30:53.0239270Z ------------------------------------------ 2017-12-21T10:30:53.0286180Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Starting Config Reading process: 2017-12-21T10:30:53.0290803Z PackageDeployer Information 8 12/21/2017 10:29:58 AM ReadingConfig from : D:\A\R1\A\PRIMARY BUILD\DROP\DEPLOYMENTPACKAGE\BIN\RELEASE\PkgFolder\ImportConfig.xml 2017-12-21T10:30:53.0293310Z PackageDeployer Verbose 16 12/21/2017 10:29:58 AM Unpacking config 2017-12-21T10:30:53.0295844Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Reading Solutions.. Please wait 2017-12-21T10:30:53.0297745Z PackageDeployer Verbose 16 12/21/2017 10:29:58 AM Cleaning up Temp Working Directory - d:\a\_temp\gspbiv3u.b2p 2017-12-21T10:30:53.0300089Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Found One Custom Extension 2017-12-21T10:30:53.0302312Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Deployment Target Organization ID: 46c41d38-7e13-46d2-a0c1-6c7fae7654f6 2017-12-21T10:30:53.0304130Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Deployment Target Organization UniqueName: orgca8eb048 2017-12-21T10:30:53.0306507Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Deployment Target Organization Version: 9.0.0.3172 2017-12-21T10:30:53.0308629Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Deployment Target Organization Uri: https://avs100.api.crm4.dynamics.com/XRMServices/2011/Organization.svc 2017-12-21T10:30:53.0310759Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Deployment Target Organization Time marker: 12/21/2017 10:29:58 +00:00 2017-12-21T10:30:53.0312864Z PackageDeployer Information 8 12/21/2017 10:29:58 AM Completed Config Reading process 2017-12-21T10:30:53.0315094Z PackageDeployer Information 8 12/21/2017 10:29:59 AM Executing OverrideSolutionImportDecision Custom code 2017-12-21T10:30:53.0317005Z PackageDeployer Information 8 12/21/2017 10:29:59 AM Processing Solution AsyncRequestResponseSample(AsyncRequestResponseSample) - Inbound version: 1.0.0.1 - Deployed Version 1.0.0.1, System Determined Import Action: SkipSameVersion 2017-12-21T10:30:53.0319060Z PackageDeployer Information 8 12/21/2017 10:30:46 AM Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:53.0321113Z PackageDeployer Information 8 12/21/2017 10:30:47 AM Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:53.0322711Z PackageDeployer Information 8 12/21/2017 10:30:47 AM Reading OverrideDataImportSafetyChecks Custom Setting 2017-12-21T10:30:53.0324437Z PackageDeployer Information 8 12/21/2017 10:30:47 AM Reading OverrideDateMode Custom Setting 2017-12-21T10:30:53.0326719Z PackageDeployer Information 8 12/21/2017 10:30:47 AM Reading OverrideDataTimestamp Custom Setting 2017-12-21T10:30:53.0328997Z PackageDeployer Error 2 12/21/2017 10:30:52 AM Message: Failed to execute Post Import Actions - Exception Raised 2017-12-21T10:30:53.0331060Z Source : DeploymentPackage 2017-12-21T10:30:53.0333082Z Method : AfterPrimaryImport 2017-12-21T10:30:53.0334972Z Date : 10:30:52 AM 2017-12-21T10:30:53.0337105Z Time : 12/21/2017 2017-12-21T10:30:53.0339533Z Error : Method not found: 'Microsoft.Xrm.Tooling.Connector.CrmServiceClient Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase.ImportExtension.get_CrmSvc()'. 2017-12-21T10:30:53.0341692Z Stack Trace : at PackageDeployer.PackageTemplate.AfterPrimaryImport() 2017-12-21T10:30:53.0343822Z at Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageCore.ImportCode.BaseImportCustomizations.ExecutePostImportActions() 2017-12-21T10:30:53.0348828Z ====================================================================================================================== 2017-12-21T10:30:53.0350754Z 2017-12-21T10:30:53.0353064Z PackageDeployer Information 8 12/21/2017 10:30:52 AM Executing read of DataImportBypass Custom code setting 2017-12-21T10:30:53.0362435Z ------------------------------------------ 2017-12-21T10:30:53.1241674Z ##[section]Finishing: Deploy Dynamics 365 Package and Data using Package Deployer
Can you help me there?

Automate the creation of Azure app registration

In order for the code running in azure to work, we need to register an Azure AD app:

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications

Currently it is a prerequisite to do this before using the release example. It should be part of the release automation. There is a good blog post showing how to do this here:
http://blog.octavie.nl/index.php/2017/09/13/creating-azure-ad-app-registration-with-powershell-part-1
http://blog.octavie.nl/index.php/2017/09/19/create-azure-ad-app-registration-with-powershell-part-2

Specifically, the release should have a PowerShell script that does the following:

  • Check for the existence of the app registration by name (passed as a parameter to the script)
  • If it exists, verify it has the right permissions
  • If it doesn't exist, create it and set the right permissions

The permission that need to be set are in the attached screenshot.

Once the application is created, we need to get the values needed for subsequent tasks and put them into the existing VSTS variables.

Show a more simplified Azure deployment

While it's nice to demonstrate how release management can automate the creation of azure infrastructure using an ARM template, it can be overwhelming for some. Give an example of a release deployment where the azure infrastructure is already deployed and just show deploying the code to Azure.

Failed to save Primary Release

Hi,

I can import the Primary Build definition, but I got below error when saving.

The request specifies project ID 40e7ae05-db93-41cb-9334-ad0db7b87821 but the supplied pipeline specifies project ID 7895651c-7f1a-466c-aa8f-0352510e6c2c.

Looks like the ID is stick with your original project. Is ther any way we can resolve this without manually re-create the definition?

Thanks,

Khoa Nguyen

Create a "starter solution" for "getting started with source control"

While it is nice (and necessary) to learn how to deploy an existing application, what's missing is the ability to understand how to get the initial "skeleton" solution setup to be in a position to source control all the items. To that end, create a Visual Studio solution that contains a set of projects for the following:
Web Resources
Plugins
SolutionPackage
DeploymentPackage (i.e. Package Deployer project)
InitialData (i.e. using DataMigrationUtility.exe)

The intended use case would be:
-Developer downloads "skeleton" Visual Studio solution/projects
-Developer commits to their source control repository
-Developer can manually create the web resource and plugin assets or use tools like spkl (https://github.com/scottdurow/SparkleXrm/wiki/spkl), or others to bring existing assets down.
-Developer can use tools like SolutionPackager (https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/compress-extract-solution-file-solutionpackager) or spkl (which provides is a wrapper around SolutionPackager) to bring configurations into source control
-Developer is able to "get started" faster and now focus on using build and deployment automation from VSTS pointing to their source control system.

Use map.xml generated by spkl

Right now, have redundancy across spkl.json and map.xml. spkl creates it's own solution packager mapping file from spkl.json. Use that instead and delete map.xml.

Create a high level overview video...

...explaining devops, followed by devops in the context of Dynamics 365. This will help others with context and understanding when viewing the other videos.

Telemetry?

How do I incorporate telemetry such as organization insights, plugin tracing, and activity logging into a Dynamics 365 DevOps process?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.