Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>ALbuild for Azure DevOps
ALbuild for Azure DevOps

ALbuild for Azure DevOps

365 business development

| (0) | Free
Granular Azure DevOps pipeline tasks for Microsoft Dynamics 365 Business Central AL development, built on the businessdev.ALbuild PowerShell module.
Get it free

ALbuild for Azure DevOps

Granular, composable Azure DevOps pipeline tasks for Microsoft Dynamics 365 Business Central AL development — by 365 business development.

ALbuild is built on the businessdev.ALbuild PowerShell module. Every task is a thin wrapper that imports the module and calls a single cmdlet, so the same behaviour runs locally and in CI — with no dependency on BcContainerHelper.

Highlights

  • Granular, composable tasks. The monolithic Create Build Container of the previous generation is split into small, reusable steps you arrange freely: Get BC Artifact → Create BC Container → Resolve Dependencies → Compile → Sign → Publish → Run Tests → Remove BC Container.
  • BcContainerHelper-free. The container stack is reimplemented inside the module; the extension depends only on businessdev.ALbuild.
  • Reproducible dependency resolution. Transitive resolution across NuGet v3 feeds, Azure DevOps Universal Packages and committed local .app files, captured in a dependencies.lock.json.
  • Run pipelines locally. Reproduce a CI run on a developer machine with Invoke-ALbuildPipeline.
  • Generous free tier. Every build, compile, test, sign and NuGet-publish task is free of license. Only the deployment tasks require a subscription — see Pricing.

Supported environments

  • Microsoft Dynamics 365 Business Central On-Premises
  • Microsoft Dynamics 365 Business Central Online (SaaS)
  • Microsoft Dynamics 365 Business Central on Docker

Getting started

  1. Open the Azure DevOps Marketplace and search for ALbuild for Azure DevOps.
  2. Select the extension and choose Get it free to install it into your organization.
  3. Add the tasks to your build and release pipelines.

The free-of-license tasks work immediately — no license key required. To use the licensed deployment tasks, acquire a license for your Azure DevOps organization at 365businessdev.com. Licensing is verified automatically per organization, and a free trial is available.

For detailed guidance, see the documentation and the ready-to-use pipeline templates.

Example pipeline

A minimal build pipeline that resolves the BC artifact, creates a container, restores dependencies, compiles, signs, installs, runs the tests, and removes the container:

trigger:
  - main
  - master

pool:
  name: Self Hosted

steps:
  - checkout: self
    persistCredentials: true

  - task: GetBcArtifact@0
    displayName: 'Get BC Artifact'
    inputs:
      type: 'sandbox'
      version: 'latest'
      country: 'w1'

  - task: StampBuildVersion@0
    displayName: 'Set Version Number'
    inputs:
      versioningSchema: 'major.minor.build.no-of-commits'
      onlyUpdateOnChangedSource: true
    env:
      AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

  - task: CreateBcContainer@0
    displayName: 'Create BC Container'

  - task: ResolveDependencies@0
    displayName: 'Resolve Dependencies'
    env:
      AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

  - task: CompileApp@0
    displayName: 'Compile'
    inputs:
      createNuGetPackage: true

  - task: SignBcApp@0
    displayName: 'Sign'
    inputs:
      signingAzureKeyVaultUrl: '$(SigningAzureKeyVaultUrl)'
      signingAzureKeyVaultTenantId: '$(SigningAzureKeyVaultTenantId)'
      signingAzureKeyVaultClientId: '$(SigningAzureKeyVaultClientId)'
      signingAzureKeyVaultClientSecret: '$(SigningAzureKeyVaultClientSecret)'
      signingCertName: '$(SigningCertName)'

  - task: PublishApp@0
    displayName: 'Publish & Install'
    inputs:
      schemaUpdateMode: 'Synchronize'

  - task: RunBcTests@0
    displayName: 'Run Tests'

  - task: PublishTestResults@2
    displayName: 'Publish Test Results'
    inputs:
      testResultsFormat: XUnit
      testResultsFiles: TestResults.xml
      failTaskOnFailedTests: true

  - task: RemoveBcContainer@0
    displayName: 'Remove BC Container'
    condition: always()

Tasks

Each task wraps exactly one businessdev.ALbuild cmdlet.

Free-of-license tasks

Available to everyone — no license required.

Task (name@version) Purpose Cmdlet
GetBcArtifact@0 Resolve the BC artifact URL Find-BcArtifactUrl
StampBuildVersion@0 Version app.json and claim a build branch (parallel-safe) Invoke-BcBuildVersionStamp
CreateBcContainer@0 Create the build container New-BcContainer
CreateBcContainerUser@0 Create a container user New-BcContainerUser
InstallTestToolkit@0 Install the test toolkit Install-BcContainerTestToolkit
ResolveDependencies@0 Resolve dependencies to .alpackages (NuGet / Universal / local) Resolve-BcDependencies
GetUniversalPackage@0 Download a named Universal-feed package Get-BcUniversalPackage
ImportConfigPackage@0 Import a .rapidstart configuration package Import-BcConfigurationPackage
InstallBc365App@0 Install 365 business development app(s) Install-Bc365App
CompileApp@0 Compile the AL app (container or container-less) Invoke-BcCompiler
CheckTranslations@0 Validate XLIFF translations Test-BcTranslation
SignBcApp@0 Sign the .app via Azure Key Vault Invoke-BcAppSigning
PublishApp@0 Publish, sync and install the app to a container Publish-BcContainerApp
RunBcTests@0 Run AL tests and emit JUnit / XUnit results Invoke-BcContainerTest
PublishTestinyResults@0 Push test results to testiny.io Publish-BcTestinyResult
RemoveBcContainer@0 Remove the build container Remove-BcContainer
PublishPackage@0 Push a NuGet package to a feed Publish-BcPackage

Licensed tasks

Deployment tasks that require a valid ALbuild license for your Azure DevOps organization — see Pricing.

Task (name@version) Purpose Cmdlet
PublishPerTenantExtension@0 Deploy a Per-Tenant Extension (PTE) to BC online Publish-BcPerTenantExtension
PublishOnPremApp@0 Publish and install on a Business Central On-Premises environment Publish-BcOnPremApp
PublishDevExtension@0 Publish an app to a development (Dev) endpoint Publish-BcDevExtension
SubmitMarketplace@0 Submit an app to Microsoft Marketplace (AppSource) Submit-BcMarketplaceApp
BuildRuntimePackages@0 Build runtime packages per platform version Build-BcRuntimePackages

The license check runs only on entry to a licensed task. If no valid license is found, the task fails with clear remediation guidance. Free-of-license tasks never perform a license check.

Migrating from ALbuild V1

To keep existing pipelines running, the extension also ships the ALbuild V1 tasks (CreateBuildContainer, Compile, Install, AppVersioning, SignApp, ReleaseAppSource, …). They keep their original name, version and inputs, reproduce the V1 behaviour on top of the businessdev.ALbuild module, and emit a deprecation warning while still succeeding.

The V1 tasks are frozen — they will not receive new features or fixes. Migrate to the new tasks at your own pace to benefit from ongoing improvements.

Support

For questions, issues, or contributions, visit our GitHub repository.

Thank you for choosing ALbuild for your AL development and build pipelines.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft