What's New: AL-Go for GitHub on Build and Performance (2025 release wave 1)
AL-Go for GitHub build and performance changes in the 2025 release wave 1: incremental builds for CI/CD, workflow concurrency, conditional settings by build mode, preprocessor symbols as settings, full short-lived artifacts replacing the old intermediate build artifacts, versioning strategy 3 and commit options. Most are shown with settings examples and demos from Business Central repositories.
- Introduction and Overview
- Incremental Builds and Artifacts
- Workflow Concurrency and Settings
- Conditional Settings and Build Modes
- Artifact Structure Changes
- Versioning Strategy 3
- Commit Options and Integration
Overview
This 14-minute video from the Business Central channel walks through what is new in AL-Go for GitHub on build and performance. It starts with incremental builds, which now apply to CI/CD builds and not only pull requests, and pairs them with workflow concurrency so earlier builds are cancelled when commits arrive quickly.
It then covers conditional settings based on build modes, preprocessor symbols as settings, a change to how full artifacts are created as short-lived artifacts, versioning strategy 3, and a commit options construct for injecting messages, auto-merge and pull request labels, for example to integrate with work item tools.
Key points
- Incremental builds build only the apps modified in the commit. Before, they were enabled only for pull requests; now CI/CD builds use them too, and apps that were not rebuilt are copied from the last known good build so the artifact set stays complete.
- Workflow concurrency can cancel prior builds when several commits come in quickly. It works with incremental builds, which then build all changes since the last known good build.
- Conditional settings can now depend on build mode. For example, the next major build mode can use the next major artifact instead of the 25.4 artifact.
- Preprocessor symbols can be added as an AL-Go setting (an array), including inside conditional settings per build mode, and are passed to the compiler.
- Full artifacts are now created in all builds as short-lived artifacts, replacing the artificial intermediate build artifacts used for multi-project dependencies. Retention defaults to one day and a setting can make it longer.
- Versioning strategy 3: app.json controls major, minor and build numbers, and the GitHub counter controls only the fourth digit.
- The commit options construct supports a message suffix, auto-merge and pull request labels. It is used with the Azure Boards integration to link pull requests to work items.
Features
| Feature | Status | At |
|---|---|---|
| Incremental Builds | status not stated, demoed | 0:46 |
| Workflow Concurrency | status not stated, demoed | 3:40 |
| Conditional Settings Based Build Modes | status not stated, demoed | 5:54 |
| Preprocessor Symbols in AL-Go | status not stated, demoed | 7:03 |
| Short-Lived Artifacts | status not stated | 8:29 |
| Versioning Strategy 3 | status not stated | 10:03 |
| Commit Options | status not stated, demoed | 11:01 |
AL objects mentioned
As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.
Quotes
- 0:46 “incremental builds is all about only building what’s needed”
- 1:21 “The primary reason for that was that we wanted every CI/CD build to have like a complete set of artifacts built and we’ve solved”
- 3:50 “it works very well with incremental builds if you set up incremental builds on a branch”
- 6:16 “with the latest version of Ego now, we also support conditional settings based on build modes.”
- 9:23 “we do create them as shortlived artifacts meaning that you can you can use a setting to to define that that these shortlived artifacts”
- 10:30 “it actually makes sense to have a versioning strategy where three digits are controlled by appjon and only one digit controlled by GitHub which”
- 11:29 “in the latest versions of go we now allow that. Uh so what you’ll do is you’ll add this commit options construct.”
Presenters (as heard): Freddy Christensen, Alexander.
