Guide contents

Create a YAML build pipeline

Updated

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.

Note

If you want to use classic pipelines

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

Prepare YAML fileLink to section: 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 XppCreatePackageLink to section: 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 pipelineLink to section: 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 stepsLink to section: 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 😉

Note

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 runLink to section: 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.

2 comments

  1. Novem

    Hi Adria,

    I cannot find the process of creating classic build pipeline for UDE.

Comments are closed.