Git Product home page Git Product 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 Introduction

Introduction

Please watch the following video to get a high level overview of this project:

Video Introduction

The project provides reference examples of using Visual Studio Team Service (VSTS) to build and deploy Dynamics 365 based applications. The reference examples are based on various use cases, including:

The intent of this project is to evolve (over time) to implement additional reference examples based on common and/or requested use cases. Lessons learned from this project have resulted in contributions back to https://github.com/waelHamze/xrm-ci-framework/ and https://github.com/scottdurow/SparkleXrm/wiki/spkl. Please feel free to suggest new scenarios / starter templates or other ideas via the issues section.

These release templates point to a sample application that spans Dynamics 365 & Azure. The source code that will be built and deployed by VSTS is available at: https://github.com/devkeydet/CrmAsyncRequestResponseSampleV2

The source code in the repository above shows how to source control both code and configurations associated with a Dynamics 365 demo/poc/sample.

The reference build definitions show two different build scenarios:

  • Primary Build.json - shows how to use VSTS to:
    • Build assets from a remote GitHub repository
      • This, of course, could be done from a VSTS repository as well depending on whether the source code should be public or private
    • Build all the assets from source control into their deployable form
      • Reports unit test pass/fail for both .net and javascript code as part of build reporting
      • Reports code coverage of unit tests
      • Minifies JavaScript using Gulp
      • Solution package zip files
      • Starter data import zip files
      • .NET dlls for both Dynamics 365 and an Azure Function App
      • etc.
  • Patch Build.json - shows how to use VSTS to:
    • Build a simple patch from source control

The reference release definitions show how to deploy assets from the build to the target environment(s). Each does the following:

UI Automation Testing

The source code of the sample application has a project called UIAutomationTests, which uses https://github.com/microsoft/easyrepro to demonstrate how perform automated UI testing for Dynamics 365. However, the tests are not yet incorporated into a release as a predeployment quality gate. There is a known issue when using https://github.com/microsoft/easyrepro with the phantomjs driver for headless test execution. Therefore, we cannot run the UI automation tests using the hosted VSTS agent. The hosted agent doesn't have browsers installed. The workaround today is to deploy your own agent. Doing so would allow you to install a browser and use one of the selenium browser drivers. See https://docs.microsoft.com/en-us/vsts/build-release/test/continuous-test-selenium for more details.

Getting Started

Prereqs

  1. Primary Build.json requires several VSTS extensions to fully function. Before beginning please install the following extensions.

Reference Examples Step by Step

Please watch the following videos to help you understand how to get started:

Part I - This video walks through Primary Build.json and Primary Release - Dynamics Only.json, with a goal of helping you understand how they work and how to import them into your own VSTS project.

Video walkthrough part one

Part II - This video assumes you watched Part I. It builds on Part I, with a goal of helping you understand how to import and execute Primary Release - Dynamics + Azure.json, which includes a more elaborate example, including provisioning, deploying and configuring Azure services and code that work as part of the overall application.

Video walkthrough part two

From Scratch

The previous videos walk you through the reference examples. If you would like a "from scratch" walkthrough of how to start with empty Dynamics 365 & Visual Studio solutions and get to a basic DevOps starting point, please review the following videos:

Zero to full source control of a model-driven PowerApp using spkl Video walkthrough part two

Build and deployment automation of a model-driven PowerApp using VSTS Video walkthrough part two

NOTE: As of the spring 2018 release, the core platform in Dynamics 365 (often referred to as XRM) is now available as part of PowerApps. Specifically, model-driven PowerApps which require the Common Data Service. Said another way, because of this evolution and new branding, the Dynamics 365 CE apps are now built on PowerApps and the Common Data Service. As we evolve this GitHub project, we will work on updating the terminology used in order to be consistent.

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.