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.jsonand ansrc/folder at minimum).
Install the v3 extension¶
- In your AzDO organization, open Organization Settings → Extensions → Browse Marketplace.
- Search for ALOps and install the v3 extension into your org.
- 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:
- Checkout — Azure DevOps pulls your repo onto the agent.
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.ALOpsAppCompiler@3— downloads thealtool.exeNuGet package, resolves your app's symbols, and compiles everyapp.jsonit finds underalsourcepath. The version template1.0.$(Build.BuildId).0ties the app version to the AzDO build number.- PublishBuildArtifacts — uploads the compiled
.appfiles as a build artifact namedapp.
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@3step to install the compiled.appinto 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 environments —
ALOpsDockerCreate@3+ALOpsDockerStart@3spin 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.