Skip to content

Commit e83295d

Browse files
committed
Merge
2 parents af19759 + 065ddc9 commit e83295d

335 files changed

Lines changed: 11451 additions & 1009 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/AL-Go-Settings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
2-
"$schema": "https://raw.githubusercontent.com/microsoft/AL-Go/91c2f1bab7959cffc66fd9513a1d83ec9f641e30/Actions/.Modules/settings.schema.json",
2+
"$schema": "https://raw.githubusercontent.com/microsoft/AL-Go/dc3e26be0e944a133933216cae88cf8f86263a28/Actions/.Modules/settings.schema.json",
33
"type": "PTE",
44
"templateUrl": "https://github.com/microsoft/AL-Go-PTE@preview",
55
"bcContainerHelperVersion": "preview",
66
"runs-on": "windows-latest",
77
"cacheImageName": "",
88
"UsePsSession": false,
9-
"artifact": "bcinsider/Sandbox/29.0.47592.0//latest",
9+
"artifact": "bcinsider/Sandbox/29.0.48172.0//latest",
1010
"country": "base",
1111
"useProjectDependencies": true,
1212
"incrementalBuilds": {
@@ -138,7 +138,7 @@
138138
]
139139
},
140140
"UpdateALGoSystemFilesEnvironment": "Official-Build",
141-
"templateSha": "ab2dd7a59581956673267c0e5aca5e9f7a1f27da",
141+
"templateSha": "a7e66c88e3f97b96ec5f55026cb353d3ccc64b3d",
142142
"commitOptions": {
143143
"messageSuffix": "Related to AB#539394",
144144
"pullRequestAutoMerge": true,

.github/RELEASENOTES.copy.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,82 @@
22

33
Note that when using the preview version of AL-Go for GitHub, we recommend you Update your AL-Go system files, as soon as possible when informed that an update is available.
44

5+
### Added support for workspace compilation
6+
7+
With v28 of Business Central, the ALTool now also provides the ability to compile workspaces of apps. This has the added advantage that the ALTool can compute the dependency graph for the apps in the workspace and compile apps in parallel (if possible). For AL-Go projects with large amounts of apps that can save a lot of time. If you want to try this out you can enable it via the following setting
8+
9+
```json
10+
"workspaceCompilation": {
11+
"enabled": true
12+
}
13+
```
14+
15+
By default apps are compiled sequentially but this can be changed via the parallelism property. This allows you to configure the maximum amount of parallel compilation processes. Set to 0 or -1 to use all available processors.
16+
17+
```json
18+
"workspaceCompilation": {
19+
"enabled": true,
20+
"parallelism": 4
21+
}
22+
```
23+
24+
### Test Projects — split builds and tests for faster feedback
25+
26+
AL-Go now supports **test projects**: a new project type that separates test execution from compilation. A test project does not build any apps itself — instead it depends on one or more regular projects, installs the apps they produce, and runs tests against them.
27+
28+
This lets you re-run tests without waiting for a full recompilation, and makes it easy to organize large repositories where builds and test suites have different scopes or cadences.
29+
30+
**Getting started**
31+
32+
Add a `projectsToTest` setting to the project-level `.AL-Go/settings.json` of an empty project (no `appFolders` or `testFolders`):
33+
34+
```json
35+
{
36+
"projectsToTest": ["build/projects/MyProject"]
37+
}
38+
```
39+
40+
AL-Go will automatically:
41+
42+
- Resolve the dependency so the test project always builds after its target project(s).
43+
- Install the Test Runner, Test Framework, and Test Libraries into the container.
44+
- Run all tests from the installed test apps.
45+
46+
**Key rules**
47+
48+
- A test project must **not** contain buildable code (no `appFolders`, `testFolders`, or `bcptTestFolders`). AL-Go will fail with a clear error if it detects both `projectsToTest` and buildable folders.
49+
- A test project cannot depend on another test project.
50+
- You can target multiple projects: `"projectsToTest": ["build/projects/ProjectA", "build/projects/ProjectB"]`.
51+
- Use full project paths as they appear in the repository.
52+
53+
### Improving error detection and build reliability when downloading project dependencies
54+
55+
The `DownloadProjectDependencies` action now downloads app files from URLs specified in the `installApps` and `installTestApps` settings upfront, rather than validating URLs at build time. This change provides:
56+
57+
- Earlier detection of inaccessible or misconfigured URLs
58+
- Clearer error messages when secrets are missing or URLs are invalid
59+
- Warnings for potential issues like duplicate filenames
60+
61+
### Improve overall performance by postponing projects with no dependants
62+
63+
The time it takes to build projects can vary significantly depending on factors such as whether you are using Linux or Windows, Containers or CompilerFolders, and whether apps are being published or tests are being run.
64+
65+
By default, projects are built according to their dependency order. As soon as all dependencies for a project are satisfied, the project is added to the next layer of jobs.
66+
67+
The new setting `postponeProjectInBuildOrder` allows you to delay long running jobs (f.ex. test runs) with no dependants until the final layer of the build order. This can improve overall build performance by preventing subsequent layers from waiting on projects that take longer to complete but are not required for further dependencies.
68+
569
### Issues
670

771
- Attempt to start docker service in case it is not running
872
- NextMajor (v28) fails when downloading dependencies from NuGet-feed
73+
- Issue 2084 Multiple artifacts failure if you re-run failed jobs after flaky tests
74+
- Issue 2085 Projects that doesn't contain both Apps and TestApps are wrongly seen as not built.
75+
- Issue 2086 Postpone jobs, which doesn't have any dependents to the end of the build order.
76+
- Rework input handling of workflow 'Update AL-Go System Files' for trigger 'workflow_call'
77+
78+
### New Settings
79+
80+
- `postponeProjectInBuildOrder` is a new project setting, which will (if set to true) cause the project to be postponed until the last build job when possible. If set on test projects, then all tests can be deferred until all builds have succeeded.
981

1082
## v8.3
1183

.github/workflows/CICD.yaml

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
trackALAlertsInGitHub: ${{ steps.SetALCodeAnalysisVar.outputs.trackALAlertsInGitHub }}
5252
steps:
5353
- name: Dump Workflow Information
54-
uses: microsoft/AL-Go/Actions/DumpWorkflowInfo@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
54+
uses: microsoft/AL-Go/Actions/DumpWorkflowInfo@dc3e26be0e944a133933216cae88cf8f86263a28
5555
with:
5656
shell: powershell
5757

@@ -62,13 +62,13 @@ jobs:
6262

6363
- name: Initialize the workflow
6464
id: init
65-
uses: microsoft/AL-Go/Actions/WorkflowInitialize@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
65+
uses: microsoft/AL-Go/Actions/WorkflowInitialize@dc3e26be0e944a133933216cae88cf8f86263a28
6666
with:
6767
shell: powershell
6868

6969
- name: Read settings
7070
id: ReadSettings
71-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
71+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
7272
with:
7373
shell: powershell
7474
get: type,powerPlatformSolutionFolder,useGitSubmodules,trackALAlertsInGitHub
@@ -82,7 +82,7 @@ jobs:
8282
- name: Read submodules token
8383
id: ReadSubmodulesToken
8484
if: env.useGitSubmodules != 'false' && env.useGitSubmodules != ''
85-
uses: microsoft/AL-Go/Actions/ReadSecrets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
85+
uses: microsoft/AL-Go/Actions/ReadSecrets@dc3e26be0e944a133933216cae88cf8f86263a28
8686
with:
8787
shell: powershell
8888
gitHubSecrets: ${{ toJson(secrets) }}
@@ -103,7 +103,7 @@ jobs:
103103
104104
- name: Determine Projects To Build
105105
id: determineProjectsToBuild
106-
uses: microsoft/AL-Go/Actions/DetermineProjectsToBuild@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
106+
uses: microsoft/AL-Go/Actions/DetermineProjectsToBuild@dc3e26be0e944a133933216cae88cf8f86263a28
107107
with:
108108
shell: powershell
109109
maxBuildDepth: ${{ env.workflowDepth }}
@@ -116,23 +116,23 @@ jobs:
116116
117117
- name: Determine Delivery Target Secrets
118118
id: DetermineDeliveryTargetSecrets
119-
uses: microsoft/AL-Go/Actions/DetermineDeliveryTargets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
119+
uses: microsoft/AL-Go/Actions/DetermineDeliveryTargets@dc3e26be0e944a133933216cae88cf8f86263a28
120120
with:
121121
shell: powershell
122122
projectsJson: '${{ steps.determineProjectsToBuild.outputs.ProjectsJson }}'
123123
checkContextSecrets: 'false'
124124

125125
- name: Read secrets
126126
id: ReadSecrets
127-
uses: microsoft/AL-Go/Actions/ReadSecrets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
127+
uses: microsoft/AL-Go/Actions/ReadSecrets@dc3e26be0e944a133933216cae88cf8f86263a28
128128
with:
129129
shell: powershell
130130
gitHubSecrets: ${{ toJson(secrets) }}
131131
getSecrets: ${{ steps.DetermineDeliveryTargetSecrets.outputs.ContextSecrets }}
132132

133133
- name: Determine Delivery Targets
134134
id: DetermineDeliveryTargets
135-
uses: microsoft/AL-Go/Actions/DetermineDeliveryTargets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
135+
uses: microsoft/AL-Go/Actions/DetermineDeliveryTargets@dc3e26be0e944a133933216cae88cf8f86263a28
136136
env:
137137
Secrets: '${{ steps.ReadSecrets.outputs.Secrets }}'
138138
with:
@@ -142,7 +142,7 @@ jobs:
142142

143143
- name: Determine Deployment Environments
144144
id: DetermineDeploymentEnvironments
145-
uses: microsoft/AL-Go/Actions/DetermineDeploymentEnvironments@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
145+
uses: microsoft/AL-Go/Actions/DetermineDeploymentEnvironments@dc3e26be0e944a133933216cae88cf8f86263a28
146146
env:
147147
GITHUB_TOKEN: ${{ github.token }}
148148
with:
@@ -158,21 +158,21 @@ jobs:
158158
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
159159

160160
- name: Read settings
161-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
161+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
162162
with:
163163
shell: powershell
164164
get: templateUrl
165165

166166
- name: Read secrets
167167
id: ReadSecrets
168-
uses: microsoft/AL-Go/Actions/ReadSecrets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
168+
uses: microsoft/AL-Go/Actions/ReadSecrets@dc3e26be0e944a133933216cae88cf8f86263a28
169169
with:
170170
shell: powershell
171171
gitHubSecrets: ${{ toJson(secrets) }}
172172
getSecrets: 'ghTokenWorkflow'
173173

174174
- name: Check for updates to AL-Go system files
175-
uses: microsoft/AL-Go/Actions/CheckForUpdates@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
175+
uses: microsoft/AL-Go/Actions/CheckForUpdates@dc3e26be0e944a133933216cae88cf8f86263a28
176176
env:
177177
GITHUB_TOKEN: ${{ github.token }}
178178
with:
@@ -241,7 +241,7 @@ jobs:
241241
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
242242

243243
- name: Download artifacts - ErrorLogs
244-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
244+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
245245
if: (success() || failure())
246246
with:
247247
pattern: '*-*ErrorLogs-*'
@@ -251,7 +251,7 @@ jobs:
251251
- name: Process AL Code Analysis Logs
252252
id: ProcessALCodeAnalysisLogs
253253
if: (success() || failure())
254-
uses: microsoft/AL-Go/Actions/ProcessALCodeAnalysisLogs@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
254+
uses: microsoft/AL-Go/Actions/ProcessALCodeAnalysisLogs@dc3e26be0e944a133933216cae88cf8f86263a28
255255
with:
256256
shell: powershell
257257

@@ -280,18 +280,18 @@ jobs:
280280
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
281281

282282
- name: Download artifacts
283-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
283+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
284284
with:
285285
path: '.artifacts'
286286

287287
- name: Read settings
288-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
288+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
289289
with:
290290
shell: powershell
291291

292292
- name: Determine ArtifactUrl
293293
id: determineArtifactUrl
294-
uses: microsoft/AL-Go/Actions/DetermineArtifactUrl@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
294+
uses: microsoft/AL-Go/Actions/DetermineArtifactUrl@dc3e26be0e944a133933216cae88cf8f86263a28
295295
with:
296296
shell: powershell
297297

@@ -300,7 +300,7 @@ jobs:
300300
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
301301

302302
- name: Build Reference Documentation
303-
uses: microsoft/AL-Go/Actions/BuildReferenceDocumentation@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
303+
uses: microsoft/AL-Go/Actions/BuildReferenceDocumentation@dc3e26be0e944a133933216cae88cf8f86263a28
304304
with:
305305
shell: powershell
306306
artifacts: '.artifacts'
@@ -336,12 +336,12 @@ jobs:
336336
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
337337

338338
- name: Download artifacts
339-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
339+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
340340
with:
341341
path: '.artifacts'
342342

343343
- name: Read settings
344-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
344+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
345345
with:
346346
shell: ${{ matrix.shell }}
347347
get: type,powerPlatformSolutionFolder
@@ -355,15 +355,15 @@ jobs:
355355
356356
- name: Read secrets
357357
id: ReadSecrets
358-
uses: microsoft/AL-Go/Actions/ReadSecrets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
358+
uses: microsoft/AL-Go/Actions/ReadSecrets@dc3e26be0e944a133933216cae88cf8f86263a28
359359
with:
360360
shell: ${{ matrix.shell }}
361361
gitHubSecrets: ${{ toJson(secrets) }}
362362
getSecrets: '${{ steps.envName.outputs.envName }}-AuthContext,${{ steps.envName.outputs.envName }}_AuthContext,AuthContext'
363363

364364
- name: Deploy to Business Central
365365
id: Deploy
366-
uses: microsoft/AL-Go/Actions/Deploy@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
366+
uses: microsoft/AL-Go/Actions/Deploy@dc3e26be0e944a133933216cae88cf8f86263a28
367367
env:
368368
Secrets: '${{ steps.ReadSecrets.outputs.Secrets }}'
369369
with:
@@ -375,7 +375,7 @@ jobs:
375375

376376
- name: Deploy to Power Platform
377377
if: env.type == 'PTE' && env.powerPlatformSolutionFolder != ''
378-
uses: microsoft/AL-Go/Actions/DeployPowerPlatform@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
378+
uses: microsoft/AL-Go/Actions/DeployPowerPlatform@dc3e26be0e944a133933216cae88cf8f86263a28
379379
env:
380380
Secrets: '${{ steps.ReadSecrets.outputs.Secrets }}'
381381
with:
@@ -398,25 +398,25 @@ jobs:
398398
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
399399

400400
- name: Download artifacts
401-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
401+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
402402
with:
403403
path: '.artifacts'
404404

405405
- name: Read settings
406-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
406+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
407407
with:
408408
shell: powershell
409409

410410
- name: Read secrets
411411
id: ReadSecrets
412-
uses: microsoft/AL-Go/Actions/ReadSecrets@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
412+
uses: microsoft/AL-Go/Actions/ReadSecrets@dc3e26be0e944a133933216cae88cf8f86263a28
413413
with:
414414
shell: powershell
415415
gitHubSecrets: ${{ toJson(secrets) }}
416416
getSecrets: '${{ matrix.deliveryTarget }}Context'
417417

418418
- name: Deliver
419-
uses: microsoft/AL-Go/Actions/Deliver@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
419+
uses: microsoft/AL-Go/Actions/Deliver@dc3e26be0e944a133933216cae88cf8f86263a28
420420
env:
421421
Secrets: '${{ steps.ReadSecrets.outputs.Secrets }}'
422422
with:
@@ -436,7 +436,7 @@ jobs:
436436

437437
- name: Finalize the workflow
438438
id: PostProcess
439-
uses: microsoft/AL-Go/Actions/WorkflowPostProcess@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
439+
uses: microsoft/AL-Go/Actions/WorkflowPostProcess@dc3e26be0e944a133933216cae88cf8f86263a28
440440
env:
441441
GITHUB_TOKEN: ${{ github.token }}
442442
with:

.github/workflows/DeployReferenceDocumentation.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,24 @@ jobs:
3030

3131
- name: Initialize the workflow
3232
id: init
33-
uses: microsoft/AL-Go/Actions/WorkflowInitialize@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
33+
uses: microsoft/AL-Go/Actions/WorkflowInitialize@dc3e26be0e944a133933216cae88cf8f86263a28
3434
with:
3535
shell: powershell
3636

3737
- name: Read settings
38-
uses: microsoft/AL-Go/Actions/ReadSettings@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
38+
uses: microsoft/AL-Go/Actions/ReadSettings@dc3e26be0e944a133933216cae88cf8f86263a28
3939
with:
4040
shell: powershell
4141

4242
- name: Determine ArtifactUrl
4343
id: determineArtifactUrl
44-
uses: microsoft/AL-Go/Actions/DetermineArtifactUrl@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
44+
uses: microsoft/AL-Go/Actions/DetermineArtifactUrl@dc3e26be0e944a133933216cae88cf8f86263a28
4545
with:
4646
shell: powershell
4747

4848
- name: Determine Deployment Environments
4949
id: DetermineDeploymentEnvironments
50-
uses: microsoft/AL-Go/Actions/DetermineDeploymentEnvironments@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
50+
uses: microsoft/AL-Go/Actions/DetermineDeploymentEnvironments@dc3e26be0e944a133933216cae88cf8f86263a28
5151
env:
5252
GITHUB_TOKEN: ${{ github.token }}
5353
with:
@@ -60,7 +60,7 @@ jobs:
6060
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
6161

6262
- name: Build Reference Documentation
63-
uses: microsoft/AL-Go/Actions/BuildReferenceDocumentation@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
63+
uses: microsoft/AL-Go/Actions/BuildReferenceDocumentation@dc3e26be0e944a133933216cae88cf8f86263a28
6464
with:
6565
shell: powershell
6666
artifacts: 'latest'
@@ -78,7 +78,7 @@ jobs:
7878

7979
- name: Finalize the workflow
8080
if: always()
81-
uses: microsoft/AL-Go/Actions/WorkflowPostProcess@91c2f1bab7959cffc66fd9513a1d83ec9f641e30
81+
uses: microsoft/AL-Go/Actions/WorkflowPostProcess@dc3e26be0e944a133933216cae88cf8f86263a28
8282
env:
8383
GITHUB_TOKEN: ${{ github.token }}
8484
with:

0 commit comments

Comments
 (0)