You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[releases/24.x@5d5ebdf] Update AL-Go System Files from microsoft/AL-Go-PTE@preview - 81401b5 / Related to AB#539394 (#3305)
## v6.4
### Deprecations
- `alwaysBuildAllProjects` will be removed after October 1st 2025.
Please set the `onPull_Request` property of the `incrementalBuilds`
setting to false to force full builds in Pull Requests.
- `<workflow>Schedule` will be removed after October 1st 2025. The old
setting, where the setting key was a combination of the workflow name
and `Schedule` (dynamic setting key name) is deprecated. Instead you
need to use a setting called
[workflowSchedule](https://aka.ms/algosettings#workflowSchedule) and
either use [Conditional
Settings](https://aka.ms/algosettings#conditional-settings) or place the
setting in a workflow specific settings file.
### Issues
- Issue 1433 Publish to Environment - DependencyInstallMode not found
- Issue 1440 Create Release fails due to recent changes to the AL-Go
- Issue 1330 CompilerFolder doesn't transfer installed Apps to NuGet
resolution
- Issue 1268 Do not throw an un-understandable error during nuGet
download
- Performance test sample code in 25.4 contains objects with ID 149201
and 149202, which are not renumbered
- Issue 798 Publish To Environment breaks CI/CD pipelines
- Issue 1182 Runs-on setting type is ambiguous - string or array
- Issue 1502 NuGet dependency version is always LatestMatching
### New Workflow specific settings
- `workflowSchedule` - can be structure with a property named `cron`,
which must be a valid crontab, defining the CRON schedule for when the
specified workflow should run. Default is no scheduled runs, only manual
triggers. Build your crontab string here:
[https://crontab.guru](https://crontab.guru). You need to run the Update
AL-Go System Files workflow for the schedule to take
effect.<br/>**Note:** If you configure a WorkflowSchedule for the CI/CD
workflow, AL-Go will stop triggering CICDs on push unless you have also
added CICDPushBranches to your settings.<br/>**Note also:** If you
define a schedule for Update AL-Go System Files, it uses direct Commit
instead of creating a PR.
- `workflowConcurrency` - is used to control concurrency of workflows.
Like with the `workflowSchedule` setting, this setting should be applied
in workflow specific settings files or conditional settings. By default,
all workflows allows for concurrency, except for the Create Release
workflow. If you are using incremental builds in CI/CD it is also
recommented to set WorkflowConcurrency to:<br/>`[ "group: ${{
github.workflow }}-${{ github.ref }}", "cancel-in-progress: true" ]`<br
/>in order to cancel prior incremental builds on the same branch.<br
/>Read more about workflow concurrency
[here](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/control-the-concurrency-of-workflows-and-jobs).
### New Repository Settings
- `nuGetFeedSelectMode` determines the select mode when finding Business
Central app packages from NuGet feeds, based on the dependency version
specified in app.json. Options are: `Earliest` for earliest version of
the package, `EarliestMatching` for earliest version of the package also
compatible with the Business Central version used, `Exact` for the exact
version of the package, `Latest` for the latest version of the package,
`LatestMatching` for the latest version of the package also compatible
with the Business Central version used.
- `deployTo<environment>` now has two additional properties:
- `includeTestAppsInSandboxEnvironment`, which deploys test apps and
their dependencies to the specified sandbox environment if set to
`true`. Deployment will fail if used on a Prod environment or if the
test app has a dependency on Tests-TestLibraries. Default value is
`false`.
- `excludeAppIds`, which is an array of app ids which will be excluded
from deployment. Default value is `[]`
- `incrementalBuilds` - is a structure defining how you want AL-Go to
handle incremental builds. When using incremental builds for a build,
AL-Go will look for the latest successful build, newer than the defined
`retentionDays` and only rebuild projects or apps (based on `mode`)
which needs to be rebuilt. Properties in the structure includes:
- `onPush` - set this property to **true** in order to enable
incremental builds in CI/CD triggered by a merge/push event. Default is
**false**.
- `onPull_Request` - set this property to **false** in order to disable
incremental builds in Pull Request workflows. Default is **true**.
- `onSchedule` - set this property to **true** in order to enable
incremental builds in CI/CD when running on a schedule. Default is
**false**.
- `retentionDays` - number of days a successful build is good (and can
be used for incremental builds). Default is **30**.
- `mode` - defines the mode for incremental builds. Currently, two
values are supported. Use **modifiedProjects** when you want to rebuild
all apps in modified projects and depending projects or **modifiedApps**
if you only want to rebuild modified apps and depending apps.
> [!NOTE]
> The projects mentioned here are AL-Go projects in a multi-project
repository. A repository can contain multiple projects and a project can
contain multiple apps.
### Run "Update AL-Go System Files" on multiple branches
_Update AL-Go System Files_ has a new input to specify a list of
branches to be updated in a single workflow run.
When running the workflow on a schedule, you can now also specify
`includeBranches` in `workflowSchedule` setting, which allows you to
update the specified branches. Read more at
https://aka.ms/algosettings#workflowSchedule.
> [!NOTE]
> When running "Update AL-Go System Files" on multiple branches, the
template repository URL will be determined based on the branch the
workflow runs on and it will be used for all of the specified branches.
### Support for incremental builds
AL-Go for GitHub now supports incremental builds, which means that
unchanged projects or apps will be reused from the previous good build.
Read [this](https://aka.ms/algosettings#incrementalBuilds) to learn
more.
> [!NOTE]
> When using incremental builds it is recommended to also set
`workflowConcurrency` as defined
[here](https://aka.ms/algosettings#workflowConcurrency).
### Support for GitHub App authentication
AL-Go for GitHub now supports using a GitHub App specification as the
GhTokenWorkflow secret for a more secure way of allowing repositories to
run Update AL-Go System Files and other workflows which are creating
commits and pull requests. See [this
description](https://github.com/microsoft/AL-Go/blob/main/Scenarios/GhTokenWorkflow.md)
to learn how to use GitHub App authentication.
### Support for embedded secrets in installApps and installTestApps
settings
If your installApps or installTestApps are secure URL, containing a
secret token, you can now use a GitHub secret specification as part of
or as the full URL of apps to install. An example could be:
`"installApps": [ "https://www.dropbox.com/${{SECRETNAME}}&dl=1" ]`
Which would hide the secret part of your URL instead of exposing it in
clear text.
Related to
[AB#539394](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/539394)
Co-authored-by: bcbuild-github-agent <[email protected]>
Copy file name to clipboardexpand all lines: .github/RELEASENOTES.copy.md
+54-4
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,56 @@
1
-
## preview
1
+
## v6.4
2
2
3
-
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.
3
+
### Deprecations
4
+
5
+
-`alwaysBuildAllProjects` will be removed after October 1st 2025. Please set the `onPull_Request` property of the `incrementalBuilds` setting to false to force full builds in Pull Requests.
6
+
-`<workflow>Schedule` will be removed after October 1st 2025. The old setting, where the setting key was a combination of the workflow name and `Schedule` (dynamic setting key name) is deprecated. Instead you need to use a setting called [workflowSchedule](https://aka.ms/algosettings#workflowSchedule) and either use [Conditional Settings](https://aka.ms/algosettings#conditional-settings) or place the setting in a workflow specific settings file.
7
+
8
+
### Issues
9
+
10
+
- Issue 1433 Publish to Environment - DependencyInstallMode not found
11
+
- Issue 1440 Create Release fails due to recent changes to the AL-Go
12
+
- Issue 1330 CompilerFolder doesn't transfer installed Apps to NuGet resolution
13
+
- Issue 1268 Do not throw an un-understandable error during nuGet download
14
+
- Performance test sample code in 25.4 contains objects with ID 149201 and 149202, which are not renumbered
15
+
- Issue 798 Publish To Environment breaks CI/CD pipelines
16
+
- Issue 1182 Runs-on setting type is ambiguous - string or array
17
+
- Issue 1502 NuGet dependency version is always LatestMatching
18
+
19
+
### New Workflow specific settings
20
+
21
+
-`workflowSchedule` - can be structure with a property named `cron`, which must be a valid crontab, defining the CRON schedule for when the specified workflow should run. Default is no scheduled runs, only manual triggers. Build your crontab string here: [https://crontab.guru](https://crontab.guru). You need to run the Update AL-Go System Files workflow for the schedule to take effect.<br/>**Note:** If you configure a WorkflowSchedule for the CI/CD workflow, AL-Go will stop triggering CICDs on push unless you have also added CICDPushBranches to your settings.<br/>**Note also:** If you define a schedule for Update AL-Go System Files, it uses direct Commit instead of creating a PR.
22
+
-`workflowConcurrency` - is used to control concurrency of workflows. Like with the `workflowSchedule` setting, this setting should be applied in workflow specific settings files or conditional settings. By default, all workflows allows for concurrency, except for the Create Release workflow. If you are using incremental builds in CI/CD it is also recommented to set WorkflowConcurrency to:<br/>`[ "group: ${{ github.workflow }}-${{ github.ref }}", "cancel-in-progress: true" ]`<br />in order to cancel prior incremental builds on the same branch.<br />Read more about workflow concurrency [here](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/control-the-concurrency-of-workflows-and-jobs).
23
+
24
+
### New Repository Settings
25
+
26
+
-`nuGetFeedSelectMode` determines the select mode when finding Business Central app packages from NuGet feeds, based on the dependency version specified in app.json. Options are: `Earliest` for earliest version of the package, `EarliestMatching` for earliest version of the package also compatible with the Business Central version used, `Exact` for the exact version of the package, `Latest` for the latest version of the package, `LatestMatching` for the latest version of the package also compatible with the Business Central version used.
27
+
-`deployTo<environment>` now has two additional properties:
28
+
-`includeTestAppsInSandboxEnvironment`, which deploys test apps and their dependencies to the specified sandbox environment if set to `true`. Deployment will fail if used on a Prod environment or if the test app has a dependency on Tests-TestLibraries. Default value is `false`.
29
+
-`excludeAppIds`, which is an array of app ids which will be excluded from deployment. Default value is `[]`
30
+
-`incrementalBuilds` - is a structure defining how you want AL-Go to handle incremental builds. When using incremental builds for a build, AL-Go will look for the latest successful build, newer than the defined `retentionDays` and only rebuild projects or apps (based on `mode`) which needs to be rebuilt. Properties in the structure includes:
31
+
-`onPush` - set this property to **true** in order to enable incremental builds in CI/CD triggered by a merge/push event. Default is **false**.
32
+
-`onPull_Request` - set this property to **false** in order to disable incremental builds in Pull Request workflows. Default is **true**.
33
+
-`onSchedule` - set this property to **true** in order to enable incremental builds in CI/CD when running on a schedule. Default is **false**.
34
+
-`retentionDays` - number of days a successful build is good (and can be used for incremental builds). Default is **30**.
35
+
-`mode` - defines the mode for incremental builds. Currently, two values are supported. Use **modifiedProjects** when you want to rebuild all apps in modified projects and depending projects or **modifiedApps** if you only want to rebuild modified apps and depending apps.
36
+
37
+
> [!NOTE]
38
+
> The projects mentioned here are AL-Go projects in a multi-project repository. A repository can contain multiple projects and a project can contain multiple apps.
39
+
40
+
### Run "Update AL-Go System Files" on multiple branches
41
+
42
+
_Update AL-Go System Files_ has a new input to specify a list of branches to be updated in a single workflow run.
43
+
When running the workflow on a schedule, you can now also specify `includeBranches` in `workflowSchedule` setting, which allows you to update the specified branches. Read more at https://aka.ms/algosettings#workflowSchedule.
44
+
45
+
> [!NOTE]
46
+
> When running "Update AL-Go System Files" on multiple branches, the template repository URL will be determined based on the branch the workflow runs on and it will be used for all of the specified branches.
47
+
48
+
### Support for incremental builds
49
+
50
+
AL-Go for GitHub now supports incremental builds, which means that unchanged projects or apps will be reused from the previous good build. Read [this](https://aka.ms/algosettings#incrementalBuilds) to learn more.
51
+
52
+
> [!NOTE]
53
+
> When using incremental builds it is recommended to also set `workflowConcurrency` as defined [here](https://aka.ms/algosettings#workflowConcurrency).
4
54
5
55
### Support for GitHub App authentication
6
56
@@ -152,7 +202,7 @@ In the summary after a Test Run, you now also have the result of performance tes
152
202
### Support Ubuntu runners for all AL-Go workflows
153
203
154
204
Previously, the workflows "Update AL-Go System Files" and "TroubleShooting" were hardcoded to always run on `windows-latest` to prevent deadlocks and security issues.
155
-
From now on, `ubuntu-lates` will also be allowed for these mission critical workflows, when changing the `runs-on` setting. Additionally, only the value `pwsh` for `shell` setting is allowed when using `ubuntu-latest` runners.
205
+
From now on, `ubuntu-latest` will also be allowed for these mission critical workflows, when changing the `runs-on` setting. Additionally, only the value `pwsh` for `shell` setting is allowed when using `ubuntu-latest` runners.
156
206
157
207
### Updated AL-Go telemetry
158
208
@@ -645,7 +695,7 @@ In the latest version, we always use LF as line seperator, UTF8 without BOM and
645
695
### Experimental Support
646
696
647
697
Setting the repo setting "shell" to "pwsh", followed by running Update AL-Go System Files, will cause all PowerShell code to be run using PowerShell 7 instead of PowerShell 5. This functionality is experimental. Please report any issues at https://github.com/microsoft/AL-Go/issues
648
-
Setting the repo setting "runs-on" to "Ubuntu-Latest", followed by running Update AL-Go System Files, will cause all non-build jobs to run using Linux. This functionality is experimental. Please report any issues at https://github.com/microsoft/AL-Go/issues
698
+
Setting the repo setting "runs-on" to "Ubuntu-latest", followed by running Update AL-Go System Files, will cause all non-build jobs to run using Linux. This functionality is experimental. Please report any issues at https://github.com/microsoft/AL-Go/issues
0 commit comments