Skip to content

ALOps App Publish

Publish and install Business Central .app extensions into a BC server instance. Supports single-app, batch (dependency order), and AL TestTool installation.

Property Value
Task name (Azure DevOps) ALOpsAppPublish@3
Action name (GitHub) alops-apppublish
Version 3.0.0
Category Deploy
OS requirement Both
Preview yes

Publish and install Business Central .app files to a BC server instance. Supports single app publish, batch publish of multiple apps in dependency order, and optional AL TestTool library installation. Works locally or inside Docker containers.

Inputs

publishing

Name Type Required Default Platform Description
nav_serverinstance Text no BC Both Business Central server instance name (e.g. BC).
install_published_apps Boolean no true Both Install apps after publishing. Disable to publish without installing.
skip_verification Boolean no true Both Skip code signing verification during publish.
publish_scope PickList no Global Both Publishing scope: Global (all tenants) or Tenant (specific tenant only). Options: Global, Tenant.
tenant Text no default Both Target tenant ID for publish and install operations.
force_install Boolean no false Both Reinstall app even if already installed.
force_sync Boolean no false Both Force schema synchronization mode.

source

Name Type Required Default Platform Description
artifact_path Text no (empty) Both Path to the folder containing .app files. Leave empty to scan the workspace directory.
nav_artifact_app_filter Text no *.app Both Glob filter for .app files to publish.
batch_publish_folder Text no (empty) Both Folder containing multiple .app files for batch publishing in dependency order.
block_symbols_only Boolean no false Both Block publishing of symbols-only app packages.
exclude_microsoft_apps Boolean no true Both Skip publishing any app whose manifest Publisher is 'Microsoft' (case-insensitive). Applied after dependency ordering so manifest data is available. Works in Docker and non-Docker modes.

docker

Name Type Required Default Platform Description
usedocker Boolean no false Both Run publish inside a Docker container. Apps are copied in, published, and results copied back.
fixed_tag Text no (empty) Both Fixed container label. When set, uses this value to locate the Docker container instead of the build ID.

testtool

Name Type Required Default Platform Description
install_al_test_tool Boolean no false Both Install AL test libraries and test runner from the BC server's built-in apps.
install_al_app_names MultiLine no `Tests-TestLibraries
System Application Test
System Application Test Library
Any
Library Assert
Library Variable Storage
Test Runner` Both Names of test library apps to install (one per line). These are matched against the built-in apps on the BC server.
strict_app_names Boolean no false Both Only install the exact apps listed in Test App Names. When disabled, version-specific test apps may be added automatically.

advanced

Name Type Required Default Platform Description
publisher_azure_ad_tenant_id Text no (empty) Both Azure AD tenant ID for per-tenant publisher authentication. Required when publishing to a multi-tenant environment with per-tenant isolation.

Outputs

Name Description
published_app_path Path to the last published .app file.
published_app_paths Comma-separated list of all published .app file paths.

Usage

- task: ALOpsAppPublish@3
  displayName: 'ALOps App Publish'
  inputs:
    nav_serverinstance: BC                                                                                                                                     # Business Central server instance name (e.g. BC). $(nav_serverinstance)
    install_published_apps: True                                                                                                                               # Install apps after publishing. Disable to publish without installing. $(install_published_apps)
    skip_verification: True                                                                                                                                    # Skip code signing verification during publish. $(skip_verification)
    publish_scope: Global                                                                                                                                      # Publishing scope: Global (all tenants) or Tenant (specific tenant only). $(publish_scope)
    tenant: default                                                                                                                                            # Target tenant ID for publish and install operations. $(tenant)
    force_install: False                                                                                                                                       # Reinstall app even if already installed. $(force_install)
    force_sync: False                                                                                                                                          # Force schema synchronization mode. $(force_sync)
    artifact_path:                                                                                                                                             # Path to the folder containing .app files. Leave empty to scan the workspace directory. $(artifact_path)
    nav_artifact_app_filter: *.app                                                                                                                             # Glob filter for .app files to publish. $(nav_artifact_app_filter)
    batch_publish_folder:                                                                                                                                      # Folder containing multiple .app files for batch publishing in dependency order. $(batch_publish_folder)
    block_symbols_only: False                                                                                                                                  # Block publishing of symbols-only app packages. $(block_symbols_only)
    exclude_microsoft_apps: True                                                                                                                               # Skip publishing any app whose manifest Publisher is 'Microsoft' (case-insensitive). Applied after dependency ordering so manifest data is available. Works in Docker and non-Docker modes. $(exclude_microsoft_apps)
    usedocker: False                                                                                                                                           # Run publish inside a Docker container. Apps are copied in, published, and results copied back. $(usedocker)
    fixed_tag:                                                                                                                                                 # Fixed container label. When set, uses this value to locate the Docker container instead of the build ID. $(fixed_tag)
    install_al_test_tool: False                                                                                                                                # Install AL test libraries and test runner from the BC server's built-in apps. $(install_al_test_tool)
    install_al_app_names: Tests-TestLibraries
System Application Test
System Application Test Library
Any
Library Assert
Library Variable Storage
Test Runner  # Names of test library apps to install (one per line). These are matched against the built-in apps on the BC server. $(install_al_app_names)
    strict_app_names: False                                                                                                                                    # Only install the exact apps listed in Test App Names. When disabled, version-specific test apps may be added automatically. $(strict_app_names)
    publisher_azure_ad_tenant_id:                                                                                                                              # Azure AD tenant ID for per-tenant publisher authentication. Required when publishing to a multi-tenant environment with per-tenant isolation. $(publisher_azure_ad_tenant_id)
- name: ALOps App Publish
  uses: HodorNV/ALOps-V3/alops-apppublish@v3   <!-- TODO: confirm action repo path -->
  with:
    nav_serverinstance: 'BC'
    install_published_apps: 'true'
    skip_verification: 'true'
    publish_scope: 'Global'
    tenant: 'default'
    force_install: 'false'
    force_sync: 'false'
    artifact_path: ''
    nav_artifact_app_filter: '*.app'
    batch_publish_folder: ''
    block_symbols_only: 'false'
    exclude_microsoft_apps: 'true'
    usedocker: 'false'
    fixed_tag: ''
    install_al_test_tool: 'false'
    install_al_app_names: 'Tests-TestLibraries
System Application Test
System Application Test Library
Any
Library Assert
Library Variable Storage
Test Runner'
    strict_app_names: 'false'
    publisher_azure_ad_tenant_id: ''