AL-Go GitHub

AL-Go for GitHub is a set of GitHub templates and actions, which can be used to setup and maintain professional DevOps processes for your Business Central AL projects.

How to start

I reccomend to use this tutorial as starting point - GetStarted

Here you:

  • Create a new repo based on the AL-Go Template
  • Create a new app using github action
  • Make changes in the new sample app
  • See how github workflow is building your app after you pushed the changes to remote

Tips

  • You can control which code analyzer the workflow uses by setting them in the settings.json: enableCodeCop, enableUICop, customCodeCops
  • You can specify your own ruleset using rulesetFile and enableExternalRulesets. The rulset file must be in the project.

External ruleset

If you want to use external ruleset file, i.e. using link to file on github, you need to create a local ruleset file with the reference to the external one. I.e. create algo.ruleset.json inside .AL-Go directory:

{
    "name": "Addmecode ruleset",
    "description": "Custom ruleset from Addmecode",
    "includedRuleSets": [
        {
            "action": "Default",
            "path": "https://raw.githubusercontent.com/addmecode/al-ruleset/refs/heads/main/custom.ruleset.json"
        }
    ],
    "rules": []
}

Add the following to the settings.json from the .AL-Go directory

{
  "rulesetFile": ".AL-Go/algo.ruleset.json",
  "enableExternalRulesets": true
}

AlDoc

AlDoc is a tool that creates a static documentation website of your AL project.
It is possible to use AlDoc in the template - all is described here: AL-Go AlDoc
In short:

  • you can create AlDoc and deploy it directly to github pages or only create the artifact that can be hosted elsewhere
  • you can create the AlDoc on demand using Deploy Reference Documentation github action or you can configure the repo to create the AlDoc in each build, i.e. by adding the following to the settings.json
{
    "alDoc": {
        "continuousDeployment": true
    }
}

Samples

Example settings and ruleset files can be found here: al-settings