Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

NVR App DevOps scripts

Install and update

Install the module through:

install-module NVRAppDevOps

Or update through

update-module NVRAppDevOps

Basic using

Import the module

Import-Module NVRAppDevOps

If there is issue with Execution Policy, allow unsigned scripts by

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

To init environment:

Read-ALConfiguration -Path <path> | Init-ALEnvironment

<path> is where Scripts\settings.ps1 exists (.\ if you are in the root of the repo, ..\ if you are in subfolder like MainApp)

For list of commands use:

Get-Command -module NVRAppDevOps

CI/CD using

You can use YAML templates from to create your Pipelines using this PowerShell module. Template for AL App using this is prepared here:

Download of missing dependencies

When you use cmdlet Compile-AlProjectTree and you set the parameter $AppDownloadScript, when the app will find dependency, which could not be fullfilled by compiling some app in the subfolders (and it is not Microsoft app), content of $AppDownloadScript will be called with object including these properties:

  • -name - name of the App missing
  • -publisher - publisher of the App missing
  • -version - minimum required version of the App
  • -path - path to store the .App file

Result of the script should be the correct .App file in the path. This App will be then used to "compile" depending apps in the folder structure.


Settings could be stored and read from two types of file:

  • Scripts\Settings.ps1 script in the repository setting variables with appropriate values
  • *.json file having default sections with at least one value ContainerName

Settings in .JSON file

File with the settings could be placed anywhere inside the repository. If no parameter SettingsFileName is passed to Read-ALConfiguration cmdlet, all .JSON files will be read and if there is value default.ContainerName, they will be taken as settings file for this module. If there are multiple files like that, all of them will be processed and values from the last wins. If SettingsFileName is passed, this will be used together with Path parameter to create path for the settings file.

Structure of the JSON:

  • first level - Profiles (at least one must be "default")
  • second level - values for the profile


        "Name": "Default Settings",
        "ContainerName": "BC",
        "ImageName": "microsoft/bcsandbox"
        "ImageName": ""

When non-default profile is selected, first all default profiles values are processed and then the specific profile values, overwriting the default one. It means the profile could have values only which are different from default.

Supported values for the settings:

  • ContainerName
  • ImageName
  • LicenseFile
  • VsixPath
  • AppJSON
  • TestAppJSON
  • AppFile
  • TestAppFile
  • RepoPath
  • AppPath
  • TestAppPath
  • Build
  • Password
  • ClientPath
  • AppDownloadScript
  • Auth
  • Username
  • RAM
  • optionalParameters


Navertica DevOps scripts for managing Microsoft Dynamics 365 Business Central Apps





No releases published


No packages published