All Projects → Power-Platform-DevOps → Power-Platform-ALM-Starter-Kit

Power-Platform-DevOps / Power-Platform-ALM-Starter-Kit

Licence: MIT license
Kit to help you start your DevOps journey with the Power Platform

Programming Languages

powershell
5483 projects

Projects that are alternatives of or similar to Power-Platform-ALM-Starter-Kit

FlowViz
A Power BI template that provides easy to understand, actionable flow metrics and predictive analytics for your agile teams using Azure DevOps, Azure DevOps Server and/or TFS.
Stars: ✭ 150 (+476.92%)
Mutual labels:  azure-devops
boots
boots is a .NET global tool for "bootstrapping" vsix & pkg files. Just "boots https://url/to/your/package"!
Stars: ✭ 78 (+200%)
Mutual labels:  azure-devops
ParallelTestingSample-dotnet-core
Sample for running dotnet core tests in parallel across multiple agents in Azure DevOps
Stars: ✭ 19 (-26.92%)
Mutual labels:  azure-devops
DevOpsMetrics
An experiment to extract and process high performing DevOps metrics (DORA) from GitHub Actions and Azure DevOps Pipelines
Stars: ✭ 127 (+388.46%)
Mutual labels:  azure-devops
docker-zero-to-hero-series
Repositório responsável pela série de artigos sobre Docker
Stars: ✭ 37 (+42.31%)
Mutual labels:  azure-devops
azure-devops-pull-request-hub
Azure DevOps Pull Request Manager Hub
Stars: ✭ 44 (+69.23%)
Mutual labels:  azure-devops
k8s-springboot-data-rest
Build & Deploy a real-world Java Springboot microservice on Azure. This project will immerse you in a series of hands-on labs that will show you how to use Azure Container Registry, Azure Kubernetes Service, Azure Container Instances, Azure DevOps & Jenkins CI/CD for building & deploying cloud-native applications.
Stars: ✭ 36 (+38.46%)
Mutual labels:  azure-devops
rust-azure-devops
[No longer maintain] 🦀 Rust extension for Azure DevOps
Stars: ✭ 26 (+0%)
Mutual labels:  azure-devops
vscode-powertools
A swiss army knife with lots of tools, extensions and (scriptable) enhancements for Visual Studio Code.
Stars: ✭ 44 (+69.23%)
Mutual labels:  azure-devops
azure-aks-kubernetes-masterclass
Azure AKS Kubernetes Masterclass
Stars: ✭ 319 (+1126.92%)
Mutual labels:  azure-devops
azure-devops-exporter
Prometheus exporter for Azure DevOps (VSTS) including agent pools, builds, releases, deployments, pullrequests and repo stats
Stars: ✭ 102 (+292.31%)
Mutual labels:  azure-devops
Com2Kube
Web application that convert docker-compose files to kubernetes files
Stars: ✭ 26 (+0%)
Mutual labels:  azure-devops
pulumi-az-pipelines-task
Azure Pipelines task extension for running Pulumi apps.
Stars: ✭ 19 (-26.92%)
Mutual labels:  azure-devops
AzureChamp
A repository for Azure Champ program to train technical experts to get ready for Azure
Stars: ✭ 16 (-38.46%)
Mutual labels:  azure-devops
WebAppWithDatabaseDemo
Sample ASP.NET Core MVC app with database for demoing CI-CD pipelines using Azure DevOps
Stars: ✭ 53 (+103.85%)
Mutual labels:  azure-devops
docker-azure-pipelines-agent
Azure DevOps Agent Docker Images. Based on this: https://github.com/microsoft/vsts-agent-docker
Stars: ✭ 20 (-23.08%)
Mutual labels:  azure-devops
XamarinPipelineDemo
Demo and explanation on how to do several common tasks for Xamarin.Forms Android in an Azure DevOps pipeline on a Microsoft-hosted agent. Tasks include: build-based version, APK signing, publishing artifacts, unit tests, and UI tests (both via emulator in Azure DevOps and via real devices in App Center).
Stars: ✭ 23 (-11.54%)
Mutual labels:  azure-devops
TfsCmdlets
PowerShell Cmdlets for Azure DevOps and Team Foundation Server
Stars: ✭ 75 (+188.46%)
Mutual labels:  azure-devops
odata-client
Java client generator for a service described by OData CSDL 4.0 metadata. Includes Microsoft Graph clients (v1.0 and Beta), Graph Explorer client, Analytics for DevOps, Dynamics CRM clients
Stars: ✭ 23 (-11.54%)
Mutual labels:  azure-devops
powerapps-packagedeployer-template
Enhanced deployment capabilities when deploying with the Power Apps Package Deployer.
Stars: ✭ 18 (-30.77%)
Mutual labels:  power-platform

Power Platform ALM Starter Kit

The goal of this project is to provide to the Power Platform community a kit that will help people start their DevOps journey with the Power Plaform. The content of this repository is mainly for advanced makers with experience with ALM concepts and programming skills. We will try to make this starter kit useful for you.

What does the Power Platform ALM Starter Kit currently covers?

  • Create a Power Platform environment and the corresponding Power Platform service connection in Azure DevOps using a pipeline you can trigger manually
  • Create a Power Platform Power Platform service connection associated to an existing environment using a pipeline you can trigger manually
  • Delete a Power Platform environment and the corresponding Power Platform service connection in Azure DevOps using a pipeline you can trigger manually
  • Delete a Power Platform Power Platform service connection associated to an existing environment using a pipeline you can trigger manually

What can you find in the Power Platform ALM Starter Kit?

Power-Platform-ALM-Starter-Kit
│   README.md
│   LICENSE
|   CODE_OF_CONDUCT.md
└───Pipelines
└───└───Templates
│   │   │   create-powerplatform-environment-template.yml: Pipeline template for the creation of a Dataverse environment
│   │   │   create-powerplatform-service-endpoint-template.yml: Pipeline template for the creation of a Power Platform service connection in Azure DevOps
│   │   │   delete-powerplatform-service-endpoint-template.yml: Pipeline template for the deletion of a Power Platform service connection in Azure DevOps
│   │   │   generate-powerplatform-environment-domainname-template.yml: Pipeline template for the generation of a Power Platform environment DomainName based on the EnvironmentName provided
│   │   │   generate-powerplatform-environment-url-template.yml: Pipeline template for the generation of the URL of a Power Platform environment based on the EnvironmentName provided
│   │   │
└───└───Utils
│   │   │   create-powerplatform-environment-and-service-endpoint.yml: Pipeline used to create of a Dataverse environment if it does not exist (search based on the name provided) and generate the associated Power Platform service connection in Azure DevOps
│   │   │   delete-powerplatform-environment-and-service-endpoint.yml: Pipeline used to delete a Dataverse environment and delete the associated Power Platform service connection in Azure DevOps
│   │   │   delete-powerplatform-service-endpoint.yml: Pipeline used to delete a Power Platform service connection in Azure DevOps
│   │   │   powerplatform-service-connection-test.yml: Pipeline used to test a Power Platform service connection with its name provided
│   │   │  
└───Configuration
│   │   powerplatform-spn-template.json: Body request template for the creation of a Power Platform service connection in Azure DevOps
│   │   DataverseEnvironmentConfiguration.txt: Template for the configuration of the Dataverse environment to create
└───Scripts
└───└───Tests
│   │   │   New-DataverseEnvironment.Tests.ps1: Test script of the New-DataverseEnvironment PowerShell function
│   │   New-DataverseEnvironment.ps1: PowerShell function for the creation of a Dataverse environment if it does not exist (search based on the name provided)

How to set-up the Power Platform ALM Starter Kit?

Prerequisites

To use this starter kit, you will need to have the following components already available:

  • an Azure DevOps organization
  • an Azure DevOps project with a repository
  • the Power Platform Build Tools extension installed in your Azure DevOps organization
  • a PAT (Personal access token) created for the considered Azure DevOps organization with Full access (at the moment, we are not able to clearly identify the access needed to enable a service connection for all pipelines)
  • Add the following permissions to your project Build Service user account in your repository settings (Project Settings > Repositories > Security tab > "YourProjectName Build Service [...]" > Permission > Allow)
    • Contribute
    • Create tag
    • Read
    • Bypass policies when pushing - if you want to create your Dataverse environments from a branch with policies ( not recommended)

Note: In a multi-tenant scenario, you will need to follow the steps below related to the Azure AD app registration for each considered tenant where you want to manage Dataverse environments.

  • an app registration registered in Azure Active Directory with (at least):
    • the following permissions with admin consent granted: Dynamics CRM.user_impersonation
    • a client secret generated and stored somewhere safe
    • the correct account type selected (single tenant or multitenant) depending on your scenario
  • run the New-PowerAppManagementApp PowerShell command of the Microsoft.PowerApps.Administration.PowerShell specifying the Application (client) ID of the app registration you registered previously in Azure AD
> Add-PowerAppsAccount
> New-PowerAppManagementApp -ApplicationId 00000000-0000-0000-0000-000000000000
  • an application user created on one of your existing Dataverse environments (for example a Production Dataverse environment you already have) with the System Administrator security role using the Application (client) ID of the app registration you registered previously in Azure AD
  • a Power Platform service connection created in the considered Azure DevOps project associated to the Dataverse environment we talked about in the previous step using the information (Application (client) ID, Directory (tenant) ID and Client Secret) of the app registration you registered previously in Azure AD

Step-by-step guide

  1. Copy the Pipelines, Configuration and Scripts folders of this repository
  2. Past it at the root of the repository in the Azure DevOps project you want to use
  3. Update the DataverseEnvironmentConfiguration.txt configuration file in the Configuration folder with the configuration you want for your environments (you can use the content of the Resources section of this page to help you complete this step)
  4. Create pipelines from all YAML pipeline definitions in the Pipelines/Utils folder (Pipelines > New pipeline > Azure Repos Git (YAML) > "NameOfRepositoryWithPipelineDefinitions" > Existing Azure Pipelines YAML File > "BranchWithPipelineDefinitions" > /Pipelines/Utils/...)
  5. Create a variable group in your Azure DevOps project with the following name and with the variables below: power-platform-environment-management-variable-group
    • ApplicationId (secret type varible recommended): Application (client) ID of your app registration in Azure Active Directory
    • AzureDevOpsOrganizationURL: URL of the Azure DevOps organization you are working in (ex: https://dev.azure.com/demonstration/)
    • ClientSecret ( secret type varible strongly recommended): Client secret of your app registration in Azure Active Directory
    • DataverseEnvironmentConfigurationFileName: Full name (with extension) of the file you want to use for the configuration of the Dataverse environments to create (ex: DataverseEnvironmentConfiguration.txt)
    • PatToken ( secret type varible strongly recommended): Value of the PAT (Personal access token) we talked about in the Prerequisites section above
    • PowerPlatformEnvironmentURLBase: Base of the URL (linked to the location) you want to consider for your Dataverse environments to create (ex: crm12.dynamics.com)
    • TenantId (secret type varible recommended): ID of your app registration in Azure Active Directory
  6. Test the pipelines

Resources

You can use the commands below from the Microsoft.PowerApps.Administration.PowerShell PowerShell module to find the information for configuration file for the creation of the Dataverse environments:

For the PowerPlatformEnvironmentURLBase variable in the power-platform-environment-management-variable-group variable group, you can find the available values in the Datacenter regions Microsoft documentation page.

Contributing to the Power Platform ALM Starter Kit project

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make your changes and commit them: git commit -m '<commit_message>'
  4. Push to the original branch: git push origin <project_name>/<location>
  5. Create a pull request targeting the main branch of this repository

Alternatively see the GitHub documentation on creating a pull request.

Contributors

Thanks to the following people who have contributed to this project:


Benedikt Bergmann

📖

Raphael Pothin

📖

Contact

If needed, you can contact us on twitter:

License

This project is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].