As we are getting ready for previewing our Azure DevOps hosted builds (~ build without build VM), we need to ensure certain steps specific to our product can be performed without the assumption of a VM with preinstalled scripts.
As a result, we are releasing new tasks in our Azure DevOps tools for Dynamics 365 Finance and Operations in the marketplace. These tasks are intended to support the future hosted builds, and we are not planning to retire the existing steps used on build VM definitions so there is no requirement to use these tasks or update your definitions. However, for some more advanced scenarios they may provide new options or more flexibility if used in existing build definitions…
The following tasks are now available as marketplace tools:
To use this task on the build VM, you will need to provide the location of the compiler tools. On a deployed VM, these are located on your service drive in AOSServicePackagesLocalDirectorybin .
Additionally, the name of the resulting package zip file is an input parameter, avoiding some of the naming complications if you are also automating releases.
This is an entirely new task which may solve some common requests from customers. If you have ISV licenses, you can use this task to add them to an existing deployable package in a pipeline.
This task produces the same result as the model versioning task in existing build definitions. Provide a search pattern of list of model descriptors to update. You can specify the lowest layer to update to avoid the script updating lower-layer code such as ISVs for example, if that code happens to be available during the build.
It’s important to note that all three of these tasks use the standard Azure DevOps file matching pattern feature. The use of this feature is described in this Azure DevOps Docs article.
- To create a deployable package, list the path to where the binaries are located. The search pattern can be used to only include or exclude certain binaries – or both. For example, to include all packages except for any with the name “Tests”, you can specify two lines in the search pattern (first line includes all packages, second line excludes packages with Tests in the name):
- To add licenses to a package, again you can use search patterns to find the text files to include.
- And finally, the update model version task will search in the X++ Source Location specified for descriptor files to update. You can explicitly provide a list of certain descriptors, you can use all and exclude certain names with wildcards, etc.