Now Available in Community - MBAS 2019 Presentation Videos
Catch the most popular sessions on demand and learn how Dynamics 365, Power BI, PowerApps, Microsoft Flow, and Excel are powering major transformations around the globe. | View Gallery
2019 release wave 2 Discover the latest updates to Dynamics 365Release overview guides and videos Release Plan | Early Access Availability
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Talent TechTalks
In the series related to the automated builds, I get to the point when I can compile and publish the extension in the docker container.
In this article, I will show how to do that. Additionally, in the end, I will add a step when the file with the application will be sent back to the Azure DevOps. It will be ready to be published in any environment where should be release.
For a compilation of the code which is in the repository, I will again use the NAVContainerHelper. The first step is to create the PowerShell script. The example you can find here:
As you can see there is not so much code here. Thankfully to the helpers, I need only one line to run the function. The file with the application will be created in the path related to the artifacts staging directory.
In the YAML file now I need to add a new step to run the PowerShell created. Example of the code you can find below.
– task: PowerShell@2
displayName: ‘Compile Single App stored in Repo’
arguments: ‘-Credential ([PSCredential]::new(“$(DockerContainerUsername)”, (ConvertTo-SecureString -String “$(DockerContainerPassword)” -AsPlainText -Force))) -BuildFolder “$(Build.Repository.LocalPath)” -BuildArtifactFolder “$(Build.ArtifactStagingDirectory)”‘
We could combine this step with the previous one however it looks much cleaner if those two steps are separated if we have only one extension.
Again the first step is to prepare the PowerShell script which will publish the app in the container. The script you can find here:
It takes the apps’ files (even if only one) from the folder where we compile it previously and publish and install in the container.
Last thing which is needed is to add new step to YAML file.
– task: PowerShell@2
displayName: ‘Publish Single App’
arguments: ‘-Credential ([PSCredential]::new(“$(DockerContainerUsername)”, (ConvertTo-SecureString -String “$(DockerContainerPassword)” -AsPlainText -Force))) -BuildArtifactFolder “$(Build.ArtifactStagingDirectory)”‘
As I wrote at the top, if the file with the extension should be again visible in the Azure DevOps it is needed to publish the artifacts at the end. For that, the last step is to add to YAML file the task. It can look as below. As you can see the path from which we take the files is the same which we used in the script to compile the code.
– task: PublishBuildArtifacts@1
displayName: ‘Publish Artifacts’
In some cases, such quick build pipeline is enough. In the YAML we have steps to install NAVContainerHelper, create the container, compile and publish the app. If all ok you are ready to release the app to any environment which you need.
The full example of a YAML file will look similar to the below. The example you can find also on GitHub here:
In the next articles, I will show how to add the testing for the extension and write how to do pull from more repositories.
Business Applications communities