With this extension NAV Developers can synchronize their development environment, running inside a Docker image, with a local GIT repository.
The extension depends on the nacontainerhelper, which can be installed through the Powershell Gallery:
Install-Module -Name navcontainerhelper
Features
- cdsa: synchronize NAV container
- cdsa: preview synchronize NAV container
- cdsa: export conflicting objects from NAV container
- cdsa: create new NAV container
- cdsa: configure settings
Extension Settings
This extension contributes the following settings:
csda.DatabaseServerInstance
: Database server instance
cdsa.DatabaseName
: Database name
cdsa.GitRepository
: Root folder of the GIT repository.
cdsa.ObjectFolder
: Objects folder inside GIT repository.
cdsa.OriginalFolder
: Original folder inside GIT repository.
cdsa.LogFolder
: Log folder.
cdsa.LogLevel
: Log level.
cdsa.NavLicenseFile
: Path to NAV licence file.
cdsa.VSTSPersonalAccessToken
: VSTS Personal access token.
cdsa.DefaultNavAutenticationUser
: Default username used in case of NavUserPassword authentication.
cdsa.DefaultNavAuthenticationPassword
: Default password uses in case of NavUserPassword authentication.
cdsa.Containers
: Available Docker containers.
Usage
Command: synchronize NAV container
This command will perform following steps:
- check your current branch against the defined git branch wildcard; if branch is not valid the synchronization process is stopped
- export and commit modified objects inside your container to your local GIT Repo
- Import modified objects from your GIT repo into your container
- Synchronize your database (with FORCE)
- Update table [Build Information] with the latest commit SH1
When there are conflicts, meaning objects are both marked modified inside your database and are also subject for import based on changes in your GIT repo, use command "export conflicting objects from NAV container".
Command: preview synchronize NAV container
This command will perform following steps:
- check your current branch against the defined git branch wildcard; if branch is not valid the synchronization process is stopped
- display the objects to export from your container to your local GIT Repo
- display the objects to import from your GIT repo into your container
- display the objects that cause conflicts cause they have been modified inside your container and your local GIT Repo.
Command: export conflicting objects from NAV container
This command will perform following steps:
- export modified objects from your container to your local GIT repo
- update modified flag in the object table for those objects
The system will NOT perform a stage or commit. Use compare tool in VS Code to merge your code with the existing version in your local GIT Repo. When conflict is solved:
- Stage and commit your changes with VS Code
- Perform command: synchronize NAV container
Command: create new NAV container
This command will perform following steps:
- create a new NAV Docker container using artifacts from the latest successfull build tagged with 'Ready for CD' that was performed on a given GIT branch.
This command will assist the user to configure his working environment
- configure a folder to place the log files
- configure the default git repository set by default for all containers
- configure a custom git repository for a certain container
- configure the NAV license file
- configure a VSTS access token