Skip to content

ALOps NuGet Publish

Publish BC .app files as NuGet packages. Uses altool for manifest reading, pure-PowerShell .nupkg creation, and dotnet nuget push.

Property Value
Task name (Azure DevOps) ALOpsNuGetPublish@3
Action name (GitHub) alops-nugetpublish
Version 3.0.0
Category Utility
OS requirement Both
Preview yes

Publishes Business Central .app files as NuGet packages to any NuGet-compatible feed. Reads app manifests via altool.exe GetPackageManifest, builds .nupkg files using pure-PowerShell ZIP assembly (no nuget.exe), and pushes via dotnet nuget push.

Inputs

altool

Name Type Required Default Platform Description
altool_package_version Text yes 18.0.33.65164-beta Both Version of the microsoft.dynamics.businesscentral.development.tools NuGet package. Pin to a specific version for reproducible builds.

authentication

Name Type Required Default Platform Description
nuget_username Text no (empty) Both Username for the NuGet source. For Azure DevOps feeds, use any value (e.g. 'az') combined with a PAT as password.
nuget_password Secret no (empty) Both Password or Personal Access Token (PAT) for the NuGet source.
nuget_source_apikey Secret no (empty) Both API Key for the NuGet source. When set, used with dotnet nuget push --api-key.

source

Name Type Required Default Platform Description
nuget_source_uri Text yes (empty) Both NuGet feed URL to push packages to.
artifact_path Text no (empty) Both Root folder to scan recursively for .app files. Leave empty to use the workspace directory.
artifact_filter Text no *.app Both File filter pattern for selecting .app files to package and publish.

packaging

Name Type Required Default Platform Description
suffix Text no (empty) Both Suffix to append to the NuGet package version (e.g. '-preview'). Leave empty for no suffix.
use_suffix_for_dependencies_same_publisher Boolean no false Both When enabled, applies the version suffix to dependency version ranges for dependencies from the same publisher.
keep_app_filename Boolean no false Both When enabled, uses the original .app filename as the .app entry inside the .nupkg instead of generating a standardized name.

Outputs

Name Description
published_packages Semicolon-separated list of published NuGet package IDs.
published_count Number of successfully published NuGet packages.

Usage

- task: ALOpsNuGetPublish@3
  displayName: 'ALOps NuGet Publish'
  inputs:
    altool_package_version: 18.0.33.65164-beta         # Version of the microsoft.dynamics.businesscentral.development.tools NuGet package. Pin to a specific version for reproducible builds. $(altool_package_version)
    nuget_username:                                    # Username for the NuGet source. For Azure DevOps feeds, use any value (e.g. 'az') combined with a PAT as password. $(nuget_username)
    nuget_password:                                    # Password or Personal Access Token (PAT) for the NuGet source. $(nuget_password)
    nuget_source_apikey:                               # API Key for the NuGet source. When set, used with dotnet nuget push --api-key. $(nuget_source_apikey)
    nuget_source_uri:                                  # NuGet feed URL to push packages to. $(nuget_source_uri)
    artifact_path:                                     # Root folder to scan recursively for .app files. Leave empty to use the workspace directory. $(artifact_path)
    artifact_filter: *.app                             # File filter pattern for selecting .app files to package and publish. $(artifact_filter)
    suffix:                                            # Suffix to append to the NuGet package version (e.g. '-preview'). Leave empty for no suffix. $(suffix)
    use_suffix_for_dependencies_same_publisher: False  # When enabled, applies the version suffix to dependency version ranges for dependencies from the same publisher. $(use_suffix_for_dependencies_same_publisher)
    keep_app_filename: False                           # When enabled, uses the original .app filename as the .app entry inside the .nupkg instead of generating a standardized name. $(keep_app_filename)
- name: ALOps NuGet Publish
  uses: HodorNV/ALOps-V3/alops-nugetpublish@v3   <!-- TODO: confirm action repo path -->
  with:
    altool_package_version: '18.0.33.65164-beta'
    nuget_username: ''
    nuget_password: ''
    nuget_source_apikey: ''
    nuget_source_uri: ''
    artifact_path: ''
    artifact_filter: '*.app'
    suffix: ''
    use_suffix_for_dependencies_same_publisher: 'false'
    keep_app_filename: 'false'