ariste.info
  • MSDyn365 & Azure DevOps ALM
  • Get my book!
  • Services
  • About me
    • About me
    • Events
    • Subscribe
    • Contact
  • Logo
  • LinkedIn

Unified experience ALM

  • Welcome to the new ALM guide
    • Introduction
    • Prerequisites
  • Create and prepare Azure DevOps organization and project
    • Create an Azure DevOps organization
    • Create an Azure DevOps project
    • Enable TFVC projects in Azure DevOps
    • Add CI/CD agents with an Azure subscription
  • Unified development environment
    • What are unified developer environments?
    • Transition to a capacity-based model
    • Deploying a unified developer environment using PowerShell
    • Deploy an UDE environment from PPAC
    • Upgrade version in a Unified Development Environment
    • Useful links
  • Using Visual Studio
    • Connect Visual Studio to your UDE
    • Deploy code to a Unified Development Environment
  • Git basics for the unified experience
    • Add X++ code to a new Git repo
    • Configure your Git repository
  • Pipelines
    • What’s new in the pipelines?
    • YAML Pipelines
    • YAML Structure
    • Understanding YAML triggers
    • Create a YAML build pipeline
    • Create a classic release pipeline
    • Create a YAML Build and Release Pipeline With Stages

Legacy Guide

  • Welcome
    • Welcome!
  • Dynamics 365 for Finance & Operations & Azure DevOps
    • Intro
    • Package and model planning
    • Azure DevOps
    • First steps
    • The build server
    • Visual Studio
    • Some advice
    • Branching strategies
  • Azure Pipelines
    • Builds
    • Continuous integration
    • Gated check-ins
    • Set up the new Azure DevOps tasks for Packaging and Model Versioning
  • Azure hosted build for Dynamics 365 Finance & SCM
    • Intro
    • Azure agents
    • How does it work?
    • What do I need?
    • Azure DevOps artifacts
    • Prepare Azure DevOps
    • Configure pipeline
    • Update for version 10.0.18 and greater
  • Azure DevTest Labs powered builds
    • Intro
    • Azure DevTest Labs
    • Getting and preparing the VHD
    • Create a DevTest Labs account
    • Creating the VM
    • Preparing the VM
    • Create a new image
    • Azure DevOps pipelines
    • Run the build
    • Times
    • Show me the money
    • Some final remarks
  • Add and build .NET projects
    • Intro
    • Build .NET in your pipeline
    • Add a C# project to FnO
    • Build pipelinebui
    • Things I don’t like/understand/need to investigate
  • Release Pipelines
    • Intro
    • Setting up Release Pipeline in Azure DevOps for Dynamics 365 for Finance and Operations
    • AAD app creation
    • Create the release pipeline in DevOps
    • Creating the LCS connection
    • New Azure DevOps release tasks: MSAL authentication and ADAL deprecation
  • Automation
    • Update VMs using pipelines and d365fo.tools
    • Builds
    • Releases
    • But I like to add some human touch to it
    • Extra bonus
    • Update a variable in a release
  • LCS DB API
    • Call the LCS Database Movement API from your Azure DevOps Pipelines
    • Automating Prod to Dev DB copies
    • Restore a data package with Azure DevOps Pipelines
  • Secure your Azure Pipelines with Azure Key Vault
    • Azure Key Vault
    • Securing your Azure DevOps Pipelines
View Categories
  • ariste.info
  • Dynamics 365 F&O Dev ALM guide
  • Unified experience ALM
  • Pipelines
  • Create a YAML build pipeline

Create a YAML build pipeline

To follow this example for the Unified Experience, you need to download the template from Microsoft’s repo on GitHub.

As a prerequisite, you have to add the NuGet packages to your artifacts.

If you want to use classic pipelines

Let’s learn how to create the build pipeline using YAML templates.

Prepare YAML file #

Download the latest file with a .yml extension.

First, if you haven’t, take a look at this section of the documentation: Configure your Git Repository. This is important because I’ll use that folder structure on the repo.

Upload the file to the Tools\Pipeline folder:

Add YAML file to Pipelines
Add YAML file to Pipelines

Rename it if you like, and now we must change it a bit:

  • In the trigger section make sure that it matches the branch you want to build. Add triggers or schedules as needed.
  • In the pool section, under vmImage you will see windows-2019. This image will be retired. Replace it with windows-latest or windows-2025.
  • In the variables section, change the NugetConfigsPath variable to ‘$(Build.SourcesDirectory)\Tools\Build’. This points the build process to look for the .config files in that folder. If you have them somewhere else, change it to fit your setup.
  • In the VSBuild@1 task, replace the vsVersion value with 17.0 to run using the latest Visual Studio version.

Click the Commit button, and wait a second!

Update XppCreatePackage #

I want to have a section for this because it’s VERY important for our Unified Experience ALM.

Change the XppCreatePackage@0 task to XppCreatePackage@2, and now click its Settings link:

XppCreatePackage@2 settings
XppCreatePackage@2 settings

Why is it so important? Look at the highlighted fields on the right. We’ve got something new here!

  • Create Lifecycle Services Software Deployable Package: if this option is selected, the build will produce a software deployable package for LCS. What we’ve used until now.
  • Create Power Platform Unified Package: if this option is selected, the build process creates a Dataverse managed solution with our X++ code! This is what we’re going to use in our release pipeline.

You can use one, the other, or both. But to follow this guide, make sure to select the Create Power Platform Unified Package one.

Create new pipeline #

Go to the Pipelines section and click the New pipeline button.

Next, select Azure Repos Git:

Select Azure Repos Git
Select Azure Repos Git

Select your repo:

Select yours, this is mine :)
Select yours, this is mine 🙂

Select Existing Azure Pipelines YAML file:

Select Existing Azure Pipelines YAML file:
Select Existing Azure Pipelines YAML file

Select the branch and YAML file that contains the pipeline definition, and click Continue:

Select your YAML file
Select your YAML file

Now you will see your pipeline definition. Here you could modify it too, and the changes will be saved in the repo. We already did the changes we needed, so just click the Run button.

Editing the steps #

While the pipeline runs, let’s take a look at the steps. If you look closely, you will see that for each task in the steps, there’s a Settings link:

Settings in tasks
Settings in tasks

If you click this link, you’ll get a side pane on the right that displays the value of the inputs for each task:

Inputs on YAML pipeline
Inputs on YAML pipeline

So, if you’re a bit allergic to the pipeline as code, you still have some graphical help 😉

Like in classic pipelines, it’s possible to remove the tasks that you don’t need; just delete them from the file.

Check your pipeline run #

If everything is fine, you will see something like this:

Successful pipeline run
Successful pipeline run

You can see that it’s ended with no errors, and there’s 1 published artifact. If you click it and open the folders, you’ll see this:

Unified solution for X++
Unified solution for X++

You can see the DLL file that we’ll deploy later in the release pipeline and the model that’s been built.

And just like that, we’ve got a build pipeline running.

Subscribe! #

Receive an email when a new post is published
What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can I help?

How can I help?

Understanding YAML triggersCreate a classic release pipeline

Write A Comment Cancel Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Table of Contents
  • Prepare YAML file
  • Update XppCreatePackage
  • Create new pipeline
  • Editing the steps
  • Check your pipeline run
  • Dynamics 365 Community
  • Subscribe!
  • Microsoft MVP
  • LinkedIn
  • Privacy Policy
  • Contact
  • About me

© 2024 ariste.info. Designed by CazaPelusas.

Top

    Type above and press Enter to search. Press Esc to cancel.