Open
Conversation
…rup/workspace_compilationm
Contributor
There was a problem hiding this comment.
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/Compilecomposite action andCompileFromWorkspacemodule 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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
❔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:
Related to: AB#618073
✅ Checklist