Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[releases/25.5@2e1e988] Update AL-Go System Files from microsoft/AL-Go-PTE@preview - 81401b5 / Related to AB#539394 #3301

Conversation

bcbuild-github-agent
Copy link
Collaborator

@bcbuild-github-agent bcbuild-github-agent commented Mar 19, 2025

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 and either use 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. You need to run the Update AL-Go System Files workflow for the schedule to take effect.
    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.
    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:
    [ "group: ${{ github.workflow }}-${{ github.ref }}", "cancel-in-progress: true" ]
    in order to cancel prior incremental builds on the same branch.
    Read more about workflow concurrency here.

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 to learn more.

Note

When using incremental builds it is recommended to also set workflowConcurrency as defined here.

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 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

…o-PTE@preview - 81401b5 / Related to AB#539394
@bcbuild-github-agent bcbuild-github-agent requested a review from a team as a code owner March 19, 2025 08:57
@bcbuild-github-agent bcbuild-github-agent added the Automation Pull request or issue created by automation label Mar 19, 2025
@bcbuild-github-agent bcbuild-github-agent enabled auto-merge (squash) March 19, 2025 08:57
@github-actions github-actions bot added Build: Automation Workflows and other setup in .github folder Build: scripts & configs Build scripts and configuration files labels Mar 19, 2025
@bcbuild-github-agent bcbuild-github-agent merged commit 362641d into releases/25.5 Mar 20, 2025
21 checks passed
@bcbuild-github-agent bcbuild-github-agent deleted the update-al-go-system-files/releases/25.5/250319085739 branch March 20, 2025 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Automation Pull request or issue created by automation Build: Automation Workflows and other setup in .github folder Build: scripts & configs Build scripts and configuration files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants