ALOpsAppCompiler v1
- task: ALOpsAppCompiler@1
displayName: 'ALOps App Compiler'
inputs:
usedocker: False # Run compilation inside the Business Central Docker container identified by the fixed tag. Requires a running container started by ALOps Docker Start or ALOps Docker Create. $(usedocker)
fixed_tag: # Fixed name tag for the Docker container. Allows the same container to be reused across multiple pipeline tasks instead of creating a new container each time. $(fixed_tag)
targetproject: ./app.json # Path to the app.json file of the AL project to compile. Must be a fully qualified path or relative to $(System.DefaultWorkingDirectory). $(targetproject)
nav_computername: # Hostname or IP address of the server providing Business Central symbols for compilation. Use localhost when the agent runs on the same machine. $(nav_computername)
nav_serverinstance: BC140 # Name of the Business Central Server instance used to download symbols, for example BC140 or BC230. $(nav_serverinstance)
nav_tenant: default # Tenant ID used when downloading symbols from a multi-tenant Business Central instance. Use default for a single-tenant setup. $(nav_tenant)
nav_ports_dev: 7049 # Port number of the Business Central development endpoint used to download symbols. The default port is 7049. $(nav_ports_dev)
bc_username: # User account name for authenticating to the Business Central service tier during symbol download. Leave empty to use Windows authentication. $(bc_username)
bc_password: # Password for the Business Central service tier user. Store this in a pipeline secret variable. $(bc_password)
al_compiler_version: 0.12.15355 # Version of the AL Language compiler (alc.exe) from the AL VSIX package to use for compilation. Use 0.0.0.0 to always resolve the latest available version. $(al_compiler_version)
ruleset: # Path to a .ruleset.json file that overrides the ruleset configured in the project .vscode/settings.json. Path is relative to the AL source folder. $(ruleset)
suppresswarnings: KEEP # Comma-separated list of diagnostic IDs to suppress during compilation, for example AA0001,AA0002. Set to KEEP to preserve the suppressWarnings value already defined in app.json. $(suppresswarnings)
al_analyzer: # Comma-separated list of AL analyzers to run during compilation, for example CodeCop,UICop,PerCop. Leave empty to use only the default set of analyzers. $(al_analyzer)
ignorepragmas: # When enabled, diagnostics suppressed by pragma directives in the AL source code are reported anyway, making hidden suppressed warnings visible in the build log. $(ignorepragmas)
nav_app_version: 1.0.*.0 # Version number template applied to the compiled app. The asterisk (*) is replaced by the current pipeline build number, for example 1.0.*.0 produces 1.0.42.0. $(nav_app_version)
vsix_download_path: # Alternative download URL for the AL Language VSIX extension used to obtain the compiler. Set to Latest to always download the newest version from the configured server. $(vsix_download_path)
use_ssl: False # Enable SSL when connecting to the Business Central development endpoint for symbol download. $(use_ssl)
download_test_symbols: False # Download test framework symbols (Test Toolkit) even when the project app.json does not reference a test version. Required for unit test projects. $(download_test_symbols)
usecompression: True # Compress the AL source folder into a zip archive before transferring it into the Docker container. Reduces transfer time for large projects. $(usecompression)
publish_artifact: True # Upload the compiled .app file as a build artifact in Azure DevOps, making it available for download or use in downstream pipeline stages. $(publish_artifact)
publishxlif: False # Upload the generated .xlf translation file as a build artifact in Azure DevOps alongside the compiled app. $(publishxlif)
failed_on_warnings: False # Fail the pipeline task if the AL compiler produces any warnings. Useful for enforcing a warning-free codebase in CI pipelines. $(failed_on_warnings)
failonany: False # Fail the pipeline task if the AL compiler produces any diagnostic message at all, including hints and informational messages. $(failonany)
app_file_suffix: # Text appended to the compiled .app filename before the extension, for example _preview produces Publisher_App_1.0.1.0_preview.app. $(app_file_suffix)
updatebuildnumber: True # Update the Azure DevOps pipeline build number to match the compiled app version so that the build run is labeled with the app version. $(updatebuildnumber)
setup_working_folder: False # Copy the local working folder into the Docker container before compilation starts. Required when the container does not already contain the source files. $(setup_working_folder)
showmycode: Keep # Override the ShowMyCode flag in app.json before compilation. Keep preserves the existing value. Enable allows source-level debugging of the app. Disable protects source code from being viewed by debuggers. $(showmycode)
resourceexposurepolicy_allowdebugging: Keep # Override the allowDebugging resource exposure policy in app.json. Keep preserves the existing value. Enable allows attaching a debugger to the app. Disable prevents debugging. $(resourceexposurepolicy_allowdebugging)
resourceexposurepolicy_allowdownloadingsource: Keep # Override the allowDownloadingSource resource exposure policy in app.json. Keep preserves the existing value. Enable allows downloading source via the AL Language extension. Disable prevents it. $(resourceexposurepolicy_allowdownloadingsource)
resourceexposurepolicy_includesourceinsymbolfile: Keep # Override the includeSourceInSymbolFile resource exposure policy in app.json. Keep preserves the existing value. Enable embeds source in the .app symbol file. Disable removes it. $(resourceexposurepolicy_includesourceinsymbolfile)
internalsvisibleto: Keep # Override the internalsVisibleTo section in app.json. Keep preserves the existing value. Remove strips the section so that internal symbols are not exposed to any other extension. $(internalsvisibleto)
preprocessorsymbols: # Override the preprocessorSymbols array in app.json with a comma-separated list of symbols, for example CLEAN19,CLEAN20. Set to NONE to remove all preprocessor symbols. $(preprocessorsymbols)
applicationinsightskey: # Override the applicationInsightsKey in app.json with the provided Azure Application Insights instrumentation key (GUID). Set to NONE to remove the key from app.json. $(applicationinsightskey)
printappmanifest: True # Print the final app.json content to the pipeline log immediately before compilation. Useful for diagnosing all version and policy overrides applied by this task. $(printappmanifest)
output_alc_logs: True # Output the full compiler log produced by alc.exe to the pipeline log, including all warnings, hints, and informational messages. $(output_alc_logs)
additionalprobingpaths: # One additional .NET assembly probing path per line. The AL compiler uses these paths to locate external .NET assemblies referenced by the app. $(additionalprobingpaths)
enable_external_rulesets: False # Allow the AL compiler to load ruleset files referenced by a full URL or absolute path, in addition to local relative paths. $(enable_external_rulesets)
allowed_publisher_names: # List of permitted app publisher names separated by the character defined in allowed_publisher_names_separator. The build fails if any dependency references a publisher not in this list. $(allowed_publisher_names)
allowed_publisher_names_separator: , # Character or string used to separate publisher names in the allowed_publisher_names field. Defaults to a comma. $(allowed_publisher_names_separator)
generatereportlayouts: True # Pass the generateReportLayouts flag to the AL compiler so that default report layouts are automatically generated during compilation. $(generatereportlayouts)
alc_continuebuildonerror: False # Pass the continueOnError flag to alc.exe. Compilation continues even when errors are encountered and produces a partial result. Useful for gathering all errors in one pass. $(alc_continuebuildonerror)
alc_errorlog: False # Pass the errorLog flag to alc.exe to write compiler errors to a separate error log file in addition to the standard output. $(alc_errorlog)
pwsh: False # Run the task using PowerShell Core (pwsh) instead of Windows PowerShell. Required when running on Linux-hosted build agents. $(pwsh)