Artifact Configuration
Determines the artifacts used for building and testing the app.Can be either:Example:
- Absolute pointer to Business Central artifacts:
https://...(rarely used) - Search specification:
<storageaccount>/<type>/<version>/<country>/<select>
country setting.If version is
*, the application dependency from your app.json determines which artifacts to use. If select is first, you get the first matching artifacts. If latest, you get the latest artifacts with the same major.minor as your application dependency.Additional countries to compile, publish, and test your app against during workflows.Can be different in NextMajor and NextMinor workflows by specifying in workflow settings file.Example:
Company name selected in the database for running the CI/CD workflow.Default is to use the default company in the selected Business Central localization.Example:
Versioning Strategy
Determines how versioning is performed. Version number format: Major.Minor.Build.RevisionMajor and Minor are read from app.json. Build and Revision are calculated:Strategy 0:
- Build = GitHub run_number + runNumberOffset
- Revision = GitHub run_attempt - 1
- Build = current date as yyyyMMdd (UTC)
- Revision = current time as hhmmss (UTC)
- Build = from app.json
- Revision = GitHub run_number
- Build = max value
- Revision = GitHub run_number
repoVersion instead of Major.Minor from app.json (also Build if strategy is 3+16)Example:When using versioningStrategy 0, offset applied to GitHub RUN_NUMBER.Use negative number to reset after increasing Major/Minor, or positive for starting offset.Example:
Dependency Management
Builds your app against the first compatible Business Central build and sets dependency version numbers in app.json during build.All version numbers in the built app are set to the version used during compilation.Example:
When true, CI/CD pipeline generates an artifact with external dependencies used for building the apps.Example:
Array of 3rd party dependency apps not available through appDependencyProbingPaths.Can be secure URLs or paths to folders/files relative to the project. Apps are downloaded and installed before compiling and installing your apps.Example:
Specify
${{SECRETNAME}} in a URL to replace with the value of secret SECRETNAME.Array of 3rd party test dependency apps not available through appDependencyProbingPaths.Apps are downloaded and installed before compiling and installing test apps. Parentheses around the setting indicate the test in this app will NOT be run, only installed.Example:
Specify
${{SECRETNAME}} in a URL to replace with the value of secret SECRETNAME.By default, only apps referenced in the dependency chain are installed from installApps, installTestApps, and appDependencyProbingPath.Set to false to install all apps found.Example:
PREVIEW: By default, AL-Go publishes test apps built in previous jobs but doesn’t execute the tests.Set to true to run tests in all test apps produced by previous jobs.Example:
Configuration Packages
Array of configuration packages applied to the build container before running tests.Can be relative paths within the project or: STANDARD, EXTENDED, or EVALUATION for rapidstart packages that come with Business Central.Example:
Country-specific configuration packages applied to the build container for the specified country.Example:
Code Analysis
Enable the CodeCop analyzer when building.Example:
Enable the UICop analyzer when building.Example:
Array of paths or URLs to custom Code Cop DLLs to enable when building.Example:
Enable code analyzers when building test apps.Example:
Upload and track AL code analysis results in the GitHub security tab.If Advanced Security is enabled, new AL code alerts are posted in PRs that introduce them.Example:
Must be enabled at repo level but can be optionally disabled per project. Currently only enabled for warnings. Error support coming in future release.
Specifies what the pipeline will fail on.Allowed values:
none- Don’t fail on warnings or errorswarning- Fail on any warningnewWarning- Fail on new warnings in PRs, behave likeerrorfor normal buildserror- Fail on errors only
Filename of the custom ruleset file.Example:
Allow external rule references in the ruleset.Example:
Report diagnostics suppressed in code using
#pragma warning disable <id>.Useful to ensure no warnings are suppressed in your code.Example:AL Language Extension
Determines which version of the AL Language Extension to use for building apps.Values:
default- Use AL Language Extension that ships with the BC versionlatest- Always download the latest from marketplacepreview- Always download the preview from marketplace- Direct download URL pointing to the AL Language VSIX file
Code Signing
Name (NOT the secret) of the code signing certificate URL secret.Example:
There is a new way of signing apps described in the Codesigning documentation.
Name (NOT the secret) of the code signing certificate password secret.Example:
Name of a certificate stored in your KeyVault for code signing.Requires Azure KeyVault enabled in your AL-Go project.Example:
Structure for enabling Azure Trusted Signing.Properties:Example:
- Account - Name of your trusted signing account
- Endpoint - Endpoint URL (e.g., https://weu.codesigning.azure.net)
- CertificateProfile - Certificate profile in your account
Your Azure_Credentials secret (Microsoft Entra ID App or Managed identity) needs the
Trusted Signing Certificate Profile Signer role in the Trusted Signing Account.Application Insights
Name (NOT the secret) of a secret containing the Application Insights connection string for the apps.Example:
Storage and Delivery
Name (NOT the secret) of a secret containing storage account context.Should contain JSON with StorageAccountName, ContainerName, BlobName, and StorageAccountKey or SAS Token. If exists, AL-Go uploads builds to this storage account for every successful build.Use
New-ALGoStorageContext from BcContainerHelper to create the JSON structure.Example:NuGet Feeds
Unless set to false, AL-Go trusts NuGet feeds provided by Microsoft.Microsoft feeds contain all Microsoft apps, symbols, and symbols for all AppSource apps.Example:
Array of NuGet feed specifications for dependency resolution.Each feed specification includes:
- url - Feed URL (required)
- authTokenSecret - Secret name containing auth token for private feeds
- patterns - Package ID patterns to trust (default: *)
- fingerprints - Array of certificate fingerprints for signed packages
Select mode when finding BC app packages from NuGet feeds based on app.json dependency version.Options:
Earliest- Earliest version of the packageEarliestMatching- Earliest version also compatible with BC versionExact- Exact version of the packageLatest- Latest version of the packageLatestMatching- Latest version also compatible with BC version
Container Settings
Create build container with AssignPremiumPlan set, giving auto-created user Premium Plan.Needed if your tests require premium plan enabled.Example:
Create build container with Task Scheduler running.Example:
Specifies the memory limit for the build container.By default, left to BcContainerHelper (currently 8G).Example:
When using self-hosted runners, specifies the prefix for the Docker image created for increased performance.Example:
When using self-hosted runners, specifies days Docker images are cached before cleanup.Example:
Containerless Compilation
Use containerless compiling.Unless Example:
doNotPublishApps is also true, no performance advantage since AL-Go still needs a container for publishing and testing.When using this setting, sign apps using the new signing mechanism described in the Codesigning documentation.
Upgrade Settings
Signal to the pipeline to NOT run upgrade and ignore previous releases of the app.Example:
AppSource-Specific Advanced Settings
Name (NOT the secret) of a secret containing AppSource context.Should contain JSON with ClientID, TenantID, and ClientSecret or RefreshToken. If exists, AL-Go can upload builds to AppSource validation.Example:
For AppSource App KeyVault access - name of secret containing certificate URL.
For AppSource App KeyVault access - name of secret containing certificate password.
For AppSource App KeyVault access - name of secret containing client ID.
Expert-Level Settings
The name of the repository (defaults to GitHub repository name).Example:
Lowest Business Central version supported by your app.Build fails early if artifacts are lower than this. Calculated by reading app.json but cannot be lower than this setting.Example:
Specific version of BcContainerHelper to use.Values:
latest- Latest released versionpreview- Latest preview versiondev- Dev branch of containerhelper- Specific version (e.g., “3.0.8”)
Related Pages
- Conditional Settings - Apply settings based on conditions
- Secrets Overview - Configure secrets for AL-Go
- Azure KeyVault - Use Azure KeyVault for secrets