Giter VIP home page Giter VIP logo

nvrappdevops's Introduction

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 https://github.com/kine/MSDYN365BC_Yaml to create your Pipelines using this PowerShell module. Template for AL App using this is prepared here:https://github.com/kine/MSDyn365BC_AppTemplate

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

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

Example: { "default":{ "Name": "Default Settings", "ContainerName": "BC", "ImageName": "microsoft/bcsandbox" }, "master":{ "ImageName": "bcinsider.azurecr.io/bcsandbox-master" } }

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

nvrappdevops's People

Contributors

abychyk avatar andreasblueher avatar ernestasjuska avatar kfc-relateit avatar kfuglsang avatar kine avatar mjecloud avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.