Skip to content

Add support for workspace compilation#2161

Open
aholstrup1 wants to merge 214 commits intomainfrom
aholstrup/workspace_compilationm
Open

Add support for workspace compilation#2161
aholstrup1 wants to merge 214 commits intomainfrom
aholstrup/workspace_compilationm

Conversation

@aholstrup1
Copy link
Collaborator

@aholstrup1 aholstrup1 commented Mar 9, 2026

❔What, Why & How

With v28 of BC the ALTool now supports workspace compilation. The key advantage of workspace compilation is that it supports parallel compilation which can significantly improve the overall compilation time for large AL-Go projects.

This PR adds AL-Go support for workspace compilation by adding a new "Compile" action. Thereby also moving the compilation out of Run-ALPipeline.

Limitations
Limitations that aren't addressed in this PR but are on our radar to fix in follow-up PRs:

  • Support for Directory.packages.props
  • Support for compilation on linux (Status: Bug on Developer Experiences)
  • Support for incremental builds
  • Support for compiling BCPT apps
  • Support for "Previous Apps" app source validation (i.e. apps from releases used as baseline)

Related to: AB#618073

✅ Checklist

  • Add tests (E2E, unit tests)
  • Update RELEASENOTES.md
  • Update documentation (e.g. for new settings or scenarios)
  • Add telemetry

@aholstrup1 aholstrup1 changed the title [Draft] Add support for workspace compilation Add support for workspace compilation Mar 11, 2026
@aholstrup1 aholstrup1 marked this pull request as ready for review March 11, 2026 09:06
Copilot AI review requested due to automatic review settings March 11, 2026 09:06
@aholstrup1 aholstrup1 requested a review from a team as a code owner March 11, 2026 09:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds AL-Go support for Business Central v28 “workspace compilation” by introducing a dedicated Compile action and moving compilation responsibilities out of RunPipeline, enabling parallel compilation for repos with multiple apps.

Changes:

  • Introduces a new Actions/Compile composite action and CompileFromWorkspace module to compile apps via ALTool workspace commands (incl. parallelism control).
  • Updates pipeline orchestration to accommodate workspace compilation (skip certain steps, adjust folder handling, centralize override-script discovery, refactor version-number derivation).
  • Adds unit + E2E coverage and documents the new settings (useWorkspaceCompilation, workspaceCompilationParallelism) and release notes.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
e2eTests/scenarios/WorkspaceCompilation/runtest.ps1 Adds an E2E scenario validating workspace compilation behavior/artifacts.
Tests/CompileFromWorkspace.Test.ps1 Adds unit tests for the new workspace compilation module functions.
Tests/AL-Go-Helper.Test.ps1 Adds unit tests for the new Get-VersionNumber helper.
Scenarios/settings.md Documents new workspace compilation settings.
RELEASENOTES.md Adds release notes entry for workspace compilation support.
Actions/RunPipeline/RunPipeline.ps1 Adjusts build flow for workspace compilation and refactors versioning + override loading.
Actions/Github-Helper.psm1 Adds Get-BasePath helper.
Actions/Compile/action.yaml Adds the new composite action entrypoint and inputs wiring.
Actions/Compile/README.md Documents the new Compile action.
Actions/Compile/Compile.ps1 Implements compilation logic using workspace compilation and writes results to installApps/TestApps JSON paths.
Actions/AL-Go-Helper.ps1 Adds Get-ScriptOverrides and Get-VersionNumber helper functions; reuses overrides in dev env creation.
Actions/.Modules/settings.schema.json Extends settings schema for workspace compilation + features/preprocessorSymbols.
Actions/.Modules/ReadSettings.psm1 Adds defaults for new settings and normalizes negative parallelism to CPU count.
Actions/.Modules/CompileFromWorkspace.psm1 Introduces workspace compilation implementation and helper utilities (workspace creation, build output aggregation, analyzers, etc.).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

aholstrup1 and others added 15 commits March 11, 2026 10:54
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants