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)