Note that when using the preview version of AL-Go for GitHub, we recommend you Update your AL-Go system files, as soon as possible when informed that an update is available.
Issues
Issue 1105 Increment Version Number - repoVersion in .github/AL-Go-Settings.json is not updated
Issue 1073 Publish to AppSource - Automated validation: failure
Issue 980 Allow Scope to be PTE in continuousDeployment for PTE extensions in Sandbox (enhancement request)
Issue 1079 AppSource App deployment failes with PerTenantExtensionCop Error PTE0001 and PTE0002
Issue 866 Accessing GitHub Environment Variables in DeployToCustom Scenarios for PowerShell Scripts
Issue 1083 SyncMode for custom deployments?
Issue 1109 Why filter deployment settings?
Fix issue with github ref when running reusable workflows
Issue 1098 Support for specifying the name of the AZURE_CREDENTIALS secret by adding a AZURE_CREDENTIALSSecretName setting
Dependencies to PowerShell modules
AL-Go for GitHub relies on specific PowerShell modules, and the minimum versions required for these modules are tracked in Packages.json file. Should the installed modules on the GitHub runner not meet these minimum requirements, the necessary modules will be installed as needed.
Support managed identities and federated credentials
All authentication context secrets now supports managed identities and federated credentials. See more here. Furthermore, you can now use https://aka.ms/algosecrets#authcontext to learn more about the formatting of that secret.
Business Central Performance Toolkit Test Result Viewer
In the summary after a Test Run, you now also have the result of performance tests.
New Settings
deployTo<environmentName>: is not really new, but has a new property:
Scope = specifies the scope of the deployment: Dev, PTE. If not specified, AL-Go for GitHub will always use the Dev Scope for AppSource Apps, but also for PTEs when deploying to sandbox environments when impersonation (refreshtoken) is used for authentication.
\ = custom properties are now supported and will be transferred to a custom deployment script in the hashtable.
bcptThresholds is a JSON object with properties for the default thresholds for the Business Central Performance Toolkit
DurationWarning - a warning is issued if the duration of a bcpt test degrades more than this percentage (default 10)
DurationError - an error is issued if the duration of a bcpt test degrades more than this percentage (default 25)
NumberOfSqlStmtsWarning - a warning is issued if the number of SQL statements from a bcpt test increases more than this percentage (default 5)
NumberOfSqlStmtsError - an error is issued if the number of SQL statements from a bcpt test increases more than this percentage (default 10)
[!NOTE]
Duration thresholds are subject to varying results depending on the performance of the agent running the tests. Number of SQL statements executed by a test is often the most reliable indicator of performance degredation.
v5.2
Issues
Issue 1084 Automatic updates for AL-Go are failing when main branch requires Pull Request
New Settings
PowerPlatformSolutionFolder: Contains the name of the folder containing a PowerPlatform Solution (only one)
DeployTo<environment> now has two additional properties companyId is the Company Id from Business Central (for PowerPlatform connection) and ppEnvironmentUrl is the Url of the PowerPlatform environment to deploy to.
New Actions
BuildPowerPlatform: to build a PowerPlatform Solution
DeployPowerPlatform: to deploy a PowerPlatform Solution
PullPowerPlatformChanges: to pull changes made in PowerPlatform studio into the repository
ReadPowerPlatformSettings: to read settings and secrets for PowerPlatform deployment
GetArtifactsForDeployment: originally code from deploy.ps1 to retrieve artifacts for releases or builds - now as an action to read apps into a folder.
New Workflows
Pull PowerPlatform Changes for pulling changes from your PowerPlatform development environment into your AL-Go for GitHub repository
Push PowerPlatform Changes for pushing changes from your AL-Go for GitHub repository to your PowerPlatform development environment
[!NOTE]
PowerPlatform workflows are only available in the PTE template and will be removed if no PowerPlatformSolutionFolder is defined in settings.
[!NOTE]
PowerPlatform functionality are only available in the PTE template.
v5.1
Issues
Issue 1019 CI/CD Workflow still being scheduled after it was disabled
Issue 1021 Error during Create Online Development Environment action
Issue 1022 Error querying artifacts: No such host is known. (bcartifacts-exdbf9fwegejdqak.blob.core.windows.net:443)
Issue 922 Deploy Reference Documentation (ALDoc) failed with custom
ContainerName used during build was invalid if project names contained special characters
Issue 1009 by adding a includeDependencies property in DeliverToAppSource
Issue 997 'Deliver to AppSource' action fails for projects containing a space
Issue 987 Resource not accessible by integration when creating release from specific version
Issue 979 Publish to AppSource Documentation
Issue 1018 Artifact setting - possibility to read version from app.json
Issue 1008 Allow PullRequestHandler to use ubuntu or self hosted runners for all jobs except for pregateCheck
Issue 962 Finer control of "shell"-property
Issue 1041 Harden the version comparison when incrementing version number
Issue 1042 Downloading artifacts from GitHub doesn't work with branch names which include forward slashes
Better artifact selection
The artifact setting in your project settings file can now contain a * instead of the version number. This means that AL-Go for GitHub will determine the application dependency for your projects together with the applicationDependency setting and determine which Business Central version is needed for the project.
"artifact": "//*//latest" will give you the latest Business Central version, higher than your application dependency and with the same major.minor as your application dependency.
"artifact": "//*//first" will give you the first Business Central version, higher than your application dependency and with the same major.minor as your application dependency.
New Settings
deliverToAppSource: a JSON object containing the following properties
productId must be the product Id from partner Center.
mainAppFolder specifies the appFolder of the main app if you have multiple apps in the same project.
continuousDelivery can be set to true to enable continuous delivery of every successful build to AppSource Validation. Note that the app will only be in preview in AppSource and you will need to manually press GO LIVE in order for the app to be promoted to production.
includeDependencies can be set to an array of file names (incl. wildcards) which are the names of the dependencies to include in the AppSource submission. Note that you need to set generateDependencyArtifact in the project settings file to true in order to include dependencies.
Add shell as a property under DeployTo structure
Deprecated Settings
appSourceContinuousDelivery is moved to the deliverToAppSource structure
appSourceMainAppFolder is moved to the deliverToAppSource structure
appSourceProductId is moved to the deliverToAppSource structure
New parameter -clean on localdevenv and clouddevenv
Adding -clean when running localdevenv or clouddevenv will create a clean development environment without compiling and publishing your apps.
v5.0
Issues
Issue 940 Publish to Environment is broken when specifying projects to publish
Issue 994 CI/CD ignores Deploy to GitHub Pages in private repositories
New Settings
UpdateALGoSystemFilesEnvironment: The name of the environment that is referenced in job UpdateALGoSystemFiles in the Update AL-Go System Files workflow. See jobs.\.environment for more information. Currently, only setting the environment name is supported.
Issues
Support release branches that start with releases/
Issue 870 Improve Error Handling when CLI is missing
Issue 889 CreateRelease and IncrementVersionNumber workflow did not handle wild characters in appFolders, testFolders or bcptTestFolders settings.
Issue 973 Prerelease is not used for deployment
Build modes
AL-Go ships with Default, Translated and Clean mode out of the box. Now you can also define custom build modes in addition to the ones shipped with AL-Go. This allows you to define your own build modes, which can be used to build your apps in different ways. By default, a custom build mode will build the apps similarly to the Default mode but this behavior can be overridden in e.g. script overrides in your repository.
v4.1
New Settings
templateSha: The SHA of the version of AL-Go currently used
New Actions
DumpWorkflowInfo: Dump information about running workflow
Troubleshooting : Run troubleshooting for repository
Update AL-Go System Files
Add another parameter when running Update AL-Go System Files, called downloadLatest, used to indicate whether to download latest version from template repository. Default value is true.
If false, the templateSha repository setting is used to download specific AL-Go System Files when calculating new files.
Issues
Issue 782 Exclude '.altestrunner/' from template .gitignore
Issue 823 Dependencies from prior build jobs are not included when using useProjectDependencies
App artifacts for version 'latest' are now fetched from the latest CICD run that completed and successfully built all the projects for the corresponding branch.
Issue 824 Utilize useCompilerFolder setting when creating an development environment for an AL-Go project.
Issue 828 and 825 display warnings for secrets, which might cause AL-Go for GitHub to malfunction
New Settings
alDoc : JSON object with properties for the ALDoc reference document generation
continuousDeployment = Determines if reference documentation will be deployed continuously as part of CI/CD. You can run the Deploy Reference Documentation workflow to deploy manually or on a schedule. (Default false)
deployToGitHubPages = Determines whether or not the reference documentation site should be deployed to GitHub Pages for the repository. In order to deploy to GitHub Pages, GitHub Pages must be enabled and set to GitHub Actions. (Default true)
maxReleases = Maximum number of releases to include in the reference documentation. (Default 3)
groupByProject = Determines whether projects in multi-project repositories are used as folders in reference documentation
includeProjects = An array of projects to include in the reference documentation. (Default all)
excludeProjects = An array of projects to exclude in the reference documentation. (Default none)-
header = Header for the documentation site. (Default: Documentation for...)
footer = Footer for the documentation site. (Default: Made with...)
defaultIndexMD = Markdown for the landing page of the documentation site. (Default: Reference documentation...)
defaultReleaseMD = Markdown for the landing page of the release sites. (Default: Release reference documentation...)
Note that in header, footer, defaultIndexMD and defaultReleaseMD you can use the following placeholders: {REPOSITORY}, {VERSION}, {INDEXTEMPLATERELATIVEPATH}, {RELEASENOTES}
New Workflows
Deploy Reference Documentation is a workflow, which you can invoke manually or on a schedule to generate and deploy reference documentation using the aldoc tool, using the ALDoc setting properties described above.
Troubleshooting is a workflow, which you can invoke manually to run troubleshooting on the repository and check for settings or secrets, containing illegal values. When creating issues on https://github.com/microsoft/AL-Go/issues, we might ask you to run the troubleshooter to help identify common problems.
Support for ALDoc reference documentation tool
ALDoc reference documentation tool is now supported for generating and deploying reference documentation for your projects either continuously or manually/scheduled.
Fixes AB#420000
preview
Note that when using the preview version of AL-Go for GitHub, we recommend you Update your AL-Go system files, as soon as possible when informed that an update is available.
Issues
Dependencies to PowerShell modules
AL-Go for GitHub relies on specific PowerShell modules, and the minimum versions required for these modules are tracked in Packages.json file. Should the installed modules on the GitHub runner not meet these minimum requirements, the necessary modules will be installed as needed.
Support managed identities and federated credentials
All authentication context secrets now supports managed identities and federated credentials. See more here. Furthermore, you can now use https://aka.ms/algosecrets#authcontext to learn more about the formatting of that secret.
Business Central Performance Toolkit Test Result Viewer
In the summary after a Test Run, you now also have the result of performance tests.
New Settings
deployTo<environmentName>
: is not really new, but has a new property:bcptThresholds
is a JSON object with properties for the default thresholds for the Business Central Performance Toolkitv5.2
Issues
New Settings
PowerPlatformSolutionFolder
: Contains the name of the folder containing a PowerPlatform Solution (only one)DeployTo<environment>
now has two additional propertiescompanyId
is the Company Id from Business Central (for PowerPlatform connection) andppEnvironmentUrl
is the Url of the PowerPlatform environment to deploy to.New Actions
BuildPowerPlatform
: to build a PowerPlatform SolutionDeployPowerPlatform
: to deploy a PowerPlatform SolutionPullPowerPlatformChanges
: to pull changes made in PowerPlatform studio into the repositoryReadPowerPlatformSettings
: to read settings and secrets for PowerPlatform deploymentGetArtifactsForDeployment
: originally code from deploy.ps1 to retrieve artifacts for releases or builds - now as an action to read apps into a folder.New Workflows
New Scenarios (Documentation)
v5.1
Issues
Better artifact selection
The artifact setting in your project settings file can now contain a
*
instead of the version number. This means that AL-Go for GitHub will determine the application dependency for your projects together with theapplicationDependency
setting and determine which Business Central version is needed for the project."artifact": "//*//latest"
will give you the latest Business Central version, higher than your application dependency and with the same major.minor as your application dependency."artifact": "//*//first"
will give you the first Business Central version, higher than your application dependency and with the same major.minor as your application dependency.New Settings
deliverToAppSource
: a JSON object containing the following propertiesgenerateDependencyArtifact
in the project settings file to true in order to include dependencies.shell
as a property underDeployTo
structureDeprecated Settings
appSourceContinuousDelivery
is moved to thedeliverToAppSource
structureappSourceMainAppFolder
is moved to thedeliverToAppSource
structureappSourceProductId
is moved to thedeliverToAppSource
structureNew parameter -clean on localdevenv and clouddevenv
Adding -clean when running localdevenv or clouddevenv will create a clean development environment without compiling and publishing your apps.
v5.0
Issues
New Settings
UpdateALGoSystemFilesEnvironment
: The name of the environment that is referenced in jobUpdateALGoSystemFiles
in the Update AL-Go System Files workflow. See jobs.\Issues
appFolders
,testFolders
orbcptTestFolders
settings.Build modes
AL-Go ships with Default, Translated and Clean mode out of the box. Now you can also define custom build modes in addition to the ones shipped with AL-Go. This allows you to define your own build modes, which can be used to build your apps in different ways. By default, a custom build mode will build the apps similarly to the Default mode but this behavior can be overridden in e.g. script overrides in your repository.
v4.1
New Settings
templateSha
: The SHA of the version of AL-Go currently usedNew Actions
DumpWorkflowInfo
: Dump information about running workflowTroubleshooting
: Run troubleshooting for repositoryUpdate AL-Go System Files
Add another parameter when running Update AL-Go System Files, called downloadLatest, used to indicate whether to download latest version from template repository. Default value is true. If false, the templateSha repository setting is used to download specific AL-Go System Files when calculating new files.
Issues
useCompilerFolder
setting when creating an development environment for an AL-Go project.New Settings
alDoc
: JSON object with properties for the ALDoc reference document generationNew Workflows
Support for ALDoc reference documentation tool
ALDoc reference documentation tool is now supported for generating and deploying reference documentation for your projects either continuously or manually/scheduled.
AB#420000