Bitta Apps
SolutionsPartnersAboutBlogPricingContact
Request a quote
Bitta Apps

Senior-led Business Central implementation, AL development, and Microsoft CSP licensing. Based in Corona, California. Remote-first across the U.S. and Canada, with onsite Southern California support by arrangement.

// services
  • Business Central partner
  • Implementation
  • AL Development
  • Integrations
  • Licensing & CSP
  • Support
  • QuickBooks migration
// industries
  • Distributors
  • Manufacturing
  • Retail
  • Healthcare
  • Non-Profit
  • Professional Services
// company
  • Solutions
  • Partners
  • Summit NA 2026
  • About
  • Careers
  • Blog
  • Pricing
  • Book a call
  • Contact
  • FAQ
// legal
  • Privacy
  • Terms
  • Cookies
  • EULA
info@bittaapps.com
LinkedIn
© 2026 · bittaapps.com · Microsoft Cloud Solution Providerinfo@bittaapps.com
    Back to blog

    // article

    CI/CD for Business Central AL Extensions: A Release Pipeline That Protects Customers

    by Mohammad Nour Itani·Aug 11, 2026·Reviewed Aug 22, 2026 by Mohammad Nour Itani
    Business CentralAL Development
    AL DevelopmentBusiness Central ExtensionsDevOps

    A Business Central AL pipeline is not complete because it produces an .app file. A production-grade pipeline proves where the package came from, which dependencies and Business Central artifacts were used, which checks passed, who approved release, and how the team can recover if deployment fails.

    Microsoft's current plug-and-play DevOps solution for Business Central app development is AL-Go for GitHub. Microsoft maintains templates for both per-tenant extensions and Marketplace apps. Teams using another CI platform can implement the same controls, but they must own more of the orchestration.

    Choose the release contract first

    Define the supported Business Central versions, countries/regions, extension type, dependency policy, branching model, and environments before writing pipeline YAML. A per-tenant extension and a Marketplace app may share compile and test stages, but their validation, signing, distribution, and approval paths differ.

    Stage 1: validate source and metadata

    • Reject unexpected changes to app identity and publisher metadata.
    • Check version movement and dependency minimum versions.
    • Run formatting and repository-policy checks.
    • Scan for secrets and prohibit production credentials in source.
    • Require a reviewed pull request for protected branches.

    Stage 2: compile reproducibly

    Restore symbols and dependencies from declared sources, compile against the intended Business Central artifact, and archive the logs. The output package should map to one immutable source commit. Rebuilding the same release from an untagged workstation with a different symbol set is not a release process.

    Run CodeCop and the analyzers appropriate to the distribution model. Marketplace candidates should include AppSourceCop and the technical-validation rules Microsoft documents. Treat analyzer errors as build failures unless a reviewed exception is recorded in source.

    Stage 3: execute automated tests

    Deploy the app and its test dependencies to an isolated Business Central test environment. Run fast unit and business-logic tests on every pull request, then broader integration, upgrade, and performance scenarios before release. Microsoft recommends container-based environments for large test suites and CI/CD gates; production online environments are not a place to run automated tests.

    Keep test code separate from the production app. Tests should be repeatable, unattended, and leave the environment in a known state.

    Stage 4: validate installation and upgrade

    Test both a clean install and an upgrade from supported production versions. A package that compiles can still fail when synchronizing schema, running upgrade code, resolving permissions, or installing a dependency. Record the exact starting app version and target environment version for every upgrade case.

    Stage 5: create a signed, immutable release

    Promote the tested artifact instead of compiling a new package for production. Store its checksum, manifest, source tag, analyzer results, test results, and release notes. Signing keys and deployment credentials belong in a protected secret store with narrowly scoped access.

    Stage 6: deploy through environments

    Move the same artifact through development, test, customer sandbox, and production gates as applicable. Automate technical deployment steps, but retain an explicit business approval before a customer production change. For production, define whether the operation is install, upgrade, or rollback and capture the result.

    Stage 7: verify after deployment

    Confirm the installed app version, upgrade completion, permission availability, critical workflows, job queues, integration health, and telemetry. A green deployment API response is not sufficient if background work is failing after installation.

    Minimum evidence for every release

    1. Reviewed source commit and version tag
    2. Business Central artifact and dependency versions
    3. Compiler and analyzer outputs
    4. Automated test and upgrade-test results
    5. Package checksum and signature status
    6. Approval identity and timestamp
    7. Environment deployment results
    8. Post-deployment smoke and telemetry checks
    9. Rollback package and decision criteria

    Why the platform name is not the architecture

    AL-Go for GitHub reduces setup and stays current through Microsoft-maintained workflows. Azure DevOps, GitHub Actions, or another controlled runner can all execute a sound release model. The non-negotiable part is the evidence chain and customer protection, not the logo on the pipeline screen.

    Bitta Apps can establish or repair AL engineering pipelines, add release-wave verification, and connect deployment evidence to integration operations for customer-owned and product extensions.

    // about this article

    Written by

    Mohammad Nour Itani

    Founder & Senior Business Central Developer · MB-820, MB-800

    Reviewed Aug 22, 2026 by

    Mohammad Nour Itani

    Founder & Senior Business Central Developer · MB-820, MB-800

    Sources

    Claims in this article were checked against the following on Aug 22, 2026.

    1. github.com/microsoft/AL-Go
    2. learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-dev-overview
    3. learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-testing-application
    4. learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-checklist-submission

    // next step

    Talk to a senior Business Central consultant, not a sales rep.

    Fixed-price proposal in writing within five business days of discovery.

    Request a quoteBook a call

    // keep reading

    AL Access Modifiers and Dependencies: Design a Stable Extension API

    Use AL access modifiers, interfaces, dependency minimum versions, and compatibility rules to keep Business Central extension contracts stable.

    Business Central AL Page Design: Patterns That Age Well

    Design Business Central AL pages around user tasks, supported page types, predictable actions, efficient data access, accessibility, and testability.

    Per-Tenant Extensions vs Marketplace Apps in Business Central

    Choose between a Business Central per-tenant extension and a Microsoft Marketplace app by comparing scope, ownership, lifecycle, and support.