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: ''