Skip to content

Your first Azure DevOps pipeline (v3)

This page walks you from zero to a working Business Central build pipeline using the v3 ALOps tasks. It assumes you already have an Azure DevOps project and a build agent.

If you're maintaining a v1/v2 pipeline, the legacy first-pipeline guide still applies.

What you'll need

  • An Azure DevOps organization and a project.
  • A self-hosted build agent that can run Windows-class tasks. The AL compiler and many BC operations need a Windows runtime — see Build Agents for sizing notes.
  • An ALOps license. If you don't have one yet, see the License page.
  • A Git repo containing your AL extension (an app.json and an src/ folder at minimum).

Install the v3 extension

  1. In your AzDO organization, open Organization Settings → Extensions → Browse Marketplace.
  2. Search for ALOps and install the v3 extension into your org.
  3. Verify the install: Organization Settings → Extensions → Installed should list ALOps with a v3 version.

You only do this once per organization.

Configure your license

In your project, create a variable group ALOps License containing one variable:

Name Value
alops-licenseid the License Key from your ALOps invoice

Mark the variable as a secret. Linking the value to an Azure Key Vault is the recommended pattern — see the License page for the full setup.

Minimum viable pipeline

Create .azure-pipelines/build.yml (or azure-pipelines.yml at the repo root) with the following:

trigger:
  branches:
    include: [main]

pool: 'Default'   # your self-hosted agent pool

variables:
  - group: 'ALOps License'

steps:
  - checkout: self

  - task: ALOpsInfo@3
    displayName: 'Diagnose the build agent'
    inputs:
      free_mem_threshold: '20'
      free_mem_threshold_action: 'Warn'
      docker_containers_action: 'Ignore'

  - task: ALOpsAppCompiler@3
    displayName: 'Compile the AL extension'
    inputs:
      altool_package_version: '17.0.30.49729-beta'
      compilation_mode: 'Serial'
      alsourcepath: '$(Build.SourcesDirectory)'
      appversiontemplate: '1.0.$(Build.BuildId).0'
      updatebuildnumber: 'true'

  - task: PublishBuildArtifacts@1
    displayName: 'Publish the .app artifact'
    inputs:
      pathToPublish: '$(Build.ArtifactStagingDirectory)'
      artifactName: 'app'

What this pipeline does:

  1. Checkout — Azure DevOps pulls your repo onto the agent.
  2. ALOpsInfo@3 — runs a diagnostic report on the agent: CPU, memory, disk, .NET versions, Docker status, BC application versions discovered. Warns if free memory is under 20%. A great smoke-test step at the top of every pipeline.
  3. ALOpsAppCompiler@3 — downloads the altool.exe NuGet package, resolves your app's symbols, and compiles every app.json it finds under alsourcepath. The version template 1.0.$(Build.BuildId).0 ties the app version to the AzDO build number.
  4. PublishBuildArtifacts — uploads the compiled .app files as a build artifact named app.

Run it

Commit the YAML and push. AzDO picks it up, runs the pipeline, and you get a green check (or a clear error) on the run page.

Next steps

  • Publish to a service tier — add an ALOpsAppPublish@3 step to install the compiled .app into a running BC instance. See the v3 build steps catalog.
  • Run tests — see the test-running tasks in the v3 catalog.
  • Use Docker for ephemeral environmentsALOpsDockerCreate@3 + ALOpsDockerStart@3 spin up a containerized BC service tier per build.
  • Customer pipeline gallery — once the v3 example gallery lands, real customer pipelines will be in Examples → v3 — Azure DevOps.