Using GitHub for DevOps

For the last 2 years we have had the Hands On Lab (https://aka.ms/cicdhol) in a few iterations using Azure DevOps as the platform. Latest revision was published a few weeks ago.

There are however multiple platforms for DevOps out there and I wanted to investigate the functionality of Github, which also is part of the Microsoft family and probably the biggest provider of devops services to developers in the world.

Continue reading

The Hello World CI/CD sample

Update 2021/2/10: BcContainerHelper has replaced NavContainerHelper. This blog post still reference NavContainerHelper, which is outdated.

Quite a few partners have build their CI/CD pipelines based on the HelloWorld CI/CD sample repository here: https://dev.azure.com/businesscentralapps/HelloWorld (the one used in the Hands On Lab – http://aka.ms/cicdhol).

Continue reading

CI/CD and artifacts

Update 2021/2/10: BcContainerHelper has replaced NavContainerHelper. This blog post still reference NavContainerHelper, which is outdated.

Only a few days have gone since releasing information about how to run Business Central in docker using artifacts and already a lot of people have tried this out and a lot of people are looking into changing their CI/CD pipelines to use artifacts.

Continue reading

Ready To Go Office Hours, 2020-02-04

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

Yesterday, I had the pleasure of co-hosting the Office Hours on the Ready To Go Program with Peter Borring and Dmitry Chadayev.

If you are unfamiliar with the Ready To Go program, you should read here: http://aka.ms/readytogo and you can read more about the Office Hours calls here: http://aka.ms/readytogoofficehours Continue reading

Running Tests In Containers

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

Running automated tests is an essential part of any CI/CD strategy. For Business Central, we have been able to use containers and the function Run-TestsInNavContainer in the NavContainerHelper PowerShell module as described in this blog post (make sure you have read this before continuing) for 6-12 months and a lot of partners are already taking advantage of this. This blog post shows you how to get the max. out of the functions. Continue reading

Developing Business Central Extensions (part 5) – YAML

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

This is part 5 of a blog post series. Part 1 contains all the prerequisites, part 2 is about cloning the project and get your sandbox environment up running, part 3 is about build agents, and building your project in Azure DevOps and part 4 is about branch policies and working with VSCode and Git. Continue reading

Developing Business Central Extensions (part 4) – Branch Policies

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

This is part 4 of a blog post series. Part 1 contains all the prerequisites, part 2 is about cloning the project and get your sandbox environment up running and part 3 is about build agents, and building your project in Azure DevOps. Continue reading

Developing Business Central Extensions (part 3) – Build Pipeline

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

If you haven’t read part 1 and part 2, you should do so before continuing here. Part 1 contains all the prerequisites and part 2 is about cloning the project and get your sandbox environment up running. Continue reading

Developing Business Central Extensions (part 2) – Repository/Environment

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

If you haven’t read part 1, you should do so before continuing here. Part 1 contains all the prerequisites you need in order to continue with this post. Continue reading

Developing Business Central Extensions (part 1) – Prerequisites

Update 2021/2/10: Microsoft stopped creating images for Docker in the summer of 2020. We now publish artifacts, which can be used to spin up containers and BcContainerHelper has replaced NavContainerHelper. This blog post reflects the old way of using NAV/BC on Docker and references NavContainerHelper, which is outdated.

A professional development environment

When developing customizations for Microsoft Dynamics NAV, we have been used to have object modifications and source code stored in the database. A lot of partners have setup pools of databases with all their customer solutions. A lot of partners have developed mechanisms to use source code management by exporting the objects as text and using delta and merge tools – in general, partners have found a way to work with the complexity of code customizing NAV. Continue reading