Automate Dataverse Solution Version Git Tagging in an Azure DevOps Pipeline

In this guide, we’ll set up an Azure DevOps pipeline that automatically tags the latest commit in the main branch with the version number from a Dataverse Solution.xml file. This setup helps track solution versions in Git, making it easy to locate specific versions of your Dataverse solution over time.

Note: This tagging process isn’t intended for release tags. The tag is moved to the latest commit that matches the version in Solution.xml, ensuring that unrelated changes (like config updates) don’t leave the version tag on older commits. However, because this pipeline deletes and recreates tags, it can cause issues if used with release tags or if others rely on specific tags for deployments. For production or release tags, it’s safer to create new versioned tags, like v1.0.1 or release-v1.0.2, for each update rather than overwriting existing tags.

Step 1: Create the Pipeline YAML File

In your Azure DevOps Git repository, where your Dataverse solution files are unpacked, create a new pipeline file. For this example we’ll use pipelines\git-tag-solution-version.yml.

Add the following content to the YAML file:

The PowerShell script in the pipeline does the following:

  1. Configures Git with the user’s email and name for tagging.
  2. Checks if Solution.xml exists; exits if not found.
  3. Reads the solution name and version from Solution.xml.
  4. Combines the solution name and version to create a tag name.
  5. Checks if the tag already exists, deletes it if so, to keep the tag on the latest commit.
  6. Tags the latest commit with the solution version and pushes it to the remote repository.

Step 2: Set Up the Pipeline in Azure DevOps

  1. Go to your Azure DevOps project.
  2. Navigate to Pipelines
  3. Click New pipeline.
  4. Select Azure Repos Git and choose your repository.
  5. Select Exisiting Azure Pipelines YAML file.
  6. Select the branch and path where you created the YMAL file, then click Continue.
  7. Click the dropdown arrow next to Run and select Save.
  8. To rename the pipeline, click the vertical ellipsis on the top right, choose Rename/move pipeline, and name it git-tag-solution-version, then click Save.

Step 3: Test the Pipeline

  1. Make a change to files, commit and push your changes to the remote repository.
  2. If you update the solution version you should see a new tag created with the latest version.Created Git tag
  3. If you update files other than the solution file verion then you should see the solution git tag move to the latest commit.Moved Git tag

All views expressed in my blog are my own and do not represent the opinions of any entity whatsover with which i have been, am now, or will be affiliated.