From 67afb2e11f5cfec448f77c91a31a3d0c359a92fe Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:28:35 +0000 Subject: [PATCH 01/11] Write installapps to json file --- .../DownloadProjectDependencies.Action.ps1 | 8 ++++++-- Actions/RunPipeline/RunPipeline.ps1 | 16 ++++++++++++---- Actions/RunPipeline/action.yaml | 8 ++++---- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 b/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 index 9cff002fe9..dc514e8346 100644 --- a/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 +++ b/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 @@ -140,8 +140,12 @@ $downloadedDependencies | ForEach-Object { OutputMessageAndArray -message "Downloaded dependencies (Apps)" -arrayOfStrings $downloadedApps OutputMessageAndArray -message "Downloaded dependencies (Test Apps)" -arrayOfStrings $downloadedTestApps -$DownloadedAppsJson = ConvertTo-Json $DownloadedApps -Depth 99 -Compress -$DownloadedTestAppsJson = ConvertTo-Json $DownloadedTestApps -Depth 99 -Compress +# Write the downloaded apps and test apps to temporary JSON files and set them as GitHub Action outputs +$tempPath = NewTemporaryFolder +$DownloadedAppsJson = Join-Path $tempPath "DownloadedApps.json" +$DownloadedTestAppsJson = Join-Path $tempPath "DownloadedTestApps.json" +ConvertTo-Json $DownloadedApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $DownloadedAppsJson +ConvertTo-Json $DownloadedTestApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $DownloadedTestAppsJson Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedApps=$DownloadedAppsJson" Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedTestApps=$DownloadedTestAppsJson" diff --git a/Actions/RunPipeline/RunPipeline.ps1 b/Actions/RunPipeline/RunPipeline.ps1 index 76abf38923..e67b7b738c 100644 --- a/Actions/RunPipeline/RunPipeline.ps1 +++ b/Actions/RunPipeline/RunPipeline.ps1 @@ -8,9 +8,9 @@ Param( [Parameter(HelpMessage = "Specifies a mode to use for the build steps", Mandatory = $false)] [string] $buildMode = 'Default', [Parameter(HelpMessage = "A JSON-formatted list of apps to install", Mandatory = $false)] - [string] $installAppsJson = '[]', + [string] $installAppsJson = '', [Parameter(HelpMessage = "A JSON-formatted list of test apps to install", Mandatory = $false)] - [string] $installTestAppsJson = '[]', + [string] $installTestAppsJson = '', [Parameter(HelpMessage = "RunId of the baseline workflow run", Mandatory = $false)] [string] $baselineWorkflowRunId = '0', [Parameter(HelpMessage = "SHA of the baseline workflow run", Mandatory = $false)] @@ -187,8 +187,16 @@ try { } $install = @{ - "Apps" = $settings.installApps + @($installAppsJson | ConvertFrom-Json) - "TestApps" = $settings.installTestApps + @($installTestAppsJson | ConvertFrom-Json) + "Apps" = $settings.installApps + "TestApps" = $settings.installTestApps + } + + if ($installAppsJson -and (Test-Path $installAppsJson)) { + $install.Apps += @($installAppsJson | Get-Content -Raw | ConvertFrom-Json) + } + + if ($installTestAppsJson -and (Test-Path $installTestAppsJson)) { + $install.TestApps += @($installTestAppsJson | Get-Content -Raw | ConvertFrom-Json) } # Replace secret names in install.apps and install.testApps diff --git a/Actions/RunPipeline/action.yaml b/Actions/RunPipeline/action.yaml index c4aad6861a..cd5003f7b4 100644 --- a/Actions/RunPipeline/action.yaml +++ b/Actions/RunPipeline/action.yaml @@ -22,13 +22,13 @@ inputs: required: false default: 'Default' installAppsJson: - description: A JSON-formatted list of apps to install + description: A path to a JSON-formatted list of apps to install required: false - default: '[]' + default: '' installTestAppsJson: - description: A JSON-formatted list of test apps to install + description: A path to a JSON-formatted list of test apps to install required: false - default: '[]' + default: '' baselineWorkflowRunId: description: RunId of the baseline workflow run required: false From 33b1ba5840607a8deb9f291dc45dcec576f865d6 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Fri, 28 Nov 2025 17:00:30 +0000 Subject: [PATCH 02/11] update --- Actions/RunPipeline/RunPipeline.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Actions/RunPipeline/RunPipeline.ps1 b/Actions/RunPipeline/RunPipeline.ps1 index e67b7b738c..850b9cff60 100644 --- a/Actions/RunPipeline/RunPipeline.ps1 +++ b/Actions/RunPipeline/RunPipeline.ps1 @@ -192,11 +192,11 @@ try { } if ($installAppsJson -and (Test-Path $installAppsJson)) { - $install.Apps += @($installAppsJson | Get-Content -Raw | ConvertFrom-Json) + $install.Apps += @(Get-Content -Path $installAppsJson -Raw | ConvertFrom-Json) } if ($installTestAppsJson -and (Test-Path $installTestAppsJson)) { - $install.TestApps += @($installTestAppsJson | Get-Content -Raw | ConvertFrom-Json) + $install.TestApps += @(Get-Content -Path $installTestAppsJson -Raw | ConvertFrom-Json) } # Replace secret names in install.apps and install.testApps From 165d3a96b5a9f13ef0d66240c5cc7bc061257ddf Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Sat, 29 Nov 2025 11:32:30 +0000 Subject: [PATCH 03/11] Update doc strings --- Actions/RunPipeline/README.md | 4 ++-- Actions/RunPipeline/RunPipeline.ps1 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Actions/RunPipeline/README.md b/Actions/RunPipeline/README.md index 40bfa84be2..b9b5c794f5 100644 --- a/Actions/RunPipeline/README.md +++ b/Actions/RunPipeline/README.md @@ -20,8 +20,8 @@ Run pipeline in AL-Go repository | artifact | | ArtifactUrl to use for the build | settings.artifact | | project | | Project name if the repository is setup for multiple projects | . | | buildMode | | Specifies a mode to use for the build steps | Default | -| installAppsJson | | A JSON-formatted list of apps to install | [] | -| installTestAppsJson | | A JSON-formatted list of test apps to install | [] | +| installAppsJson | | A path to a JSON-formatted list of apps to install | [] | +| installTestAppsJson | | A path to a JSON-formatted list of test apps to install | [] | | baselineWorkflowRunId | RunId of the baseline workflow run | | | baselineWorkflowSHA | SHA of the baseline workflow run | | diff --git a/Actions/RunPipeline/RunPipeline.ps1 b/Actions/RunPipeline/RunPipeline.ps1 index 850b9cff60..a6bc589f9b 100644 --- a/Actions/RunPipeline/RunPipeline.ps1 +++ b/Actions/RunPipeline/RunPipeline.ps1 @@ -7,9 +7,9 @@ Param( [string] $project = "", [Parameter(HelpMessage = "Specifies a mode to use for the build steps", Mandatory = $false)] [string] $buildMode = 'Default', - [Parameter(HelpMessage = "A JSON-formatted list of apps to install", Mandatory = $false)] + [Parameter(HelpMessage = "A path to a JSON-formatted list of apps to install", Mandatory = $false)] [string] $installAppsJson = '', - [Parameter(HelpMessage = "A JSON-formatted list of test apps to install", Mandatory = $false)] + [Parameter(HelpMessage = "A path to a JSON-formatted list of test apps to install", Mandatory = $false)] [string] $installTestAppsJson = '', [Parameter(HelpMessage = "RunId of the baseline workflow run", Mandatory = $false)] [string] $baselineWorkflowRunId = '0', From 2338eecc3d4040e9dff4baaf3ec3115375486552 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Sat, 29 Nov 2025 11:36:03 +0000 Subject: [PATCH 04/11] release notes --- RELEASENOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index de44f3d8d7..0017c92482 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -55,6 +55,7 @@ Read more at [workflowDefaultInputs](https://aka.ms/algosettings#workflowDefault - Issue 2016 Running Update AL-Go system files with branches wildcard `*` tries to update _origin_ - Issue 1960 Deploy Reference Documentation fails - Discussion 1952 Set default values on workflow_dispatch input +- AL-Go repositories with large amounts of projects may run into issues with too large environment variables ### Deprecations From c4e5fe6b2fd3d112cd86edd751f3552515c02b33 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Sun, 30 Nov 2025 11:53:07 +0100 Subject: [PATCH 05/11] Update Actions/RunPipeline/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- Actions/RunPipeline/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Actions/RunPipeline/README.md b/Actions/RunPipeline/README.md index b9b5c794f5..2a790e94df 100644 --- a/Actions/RunPipeline/README.md +++ b/Actions/RunPipeline/README.md @@ -20,8 +20,8 @@ Run pipeline in AL-Go repository | artifact | | ArtifactUrl to use for the build | settings.artifact | | project | | Project name if the repository is setup for multiple projects | . | | buildMode | | Specifies a mode to use for the build steps | Default | -| installAppsJson | | A path to a JSON-formatted list of apps to install | [] | -| installTestAppsJson | | A path to a JSON-formatted list of test apps to install | [] | +| installAppsJson | | A path to a JSON-formatted list of apps to install | '' | +| installTestAppsJson | | A path to a JSON-formatted list of test apps to install | '' | | baselineWorkflowRunId | RunId of the baseline workflow run | | | baselineWorkflowSHA | SHA of the baseline workflow run | | From 76c67e85f9ba4a01eab3c5bdb7a98b8c00c98852 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Sun, 30 Nov 2025 11:55:03 +0100 Subject: [PATCH 06/11] Update Actions/RunPipeline/RunPipeline.ps1 Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- Actions/RunPipeline/RunPipeline.ps1 | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Actions/RunPipeline/RunPipeline.ps1 b/Actions/RunPipeline/RunPipeline.ps1 index a6bc589f9b..9593f33b31 100644 --- a/Actions/RunPipeline/RunPipeline.ps1 +++ b/Actions/RunPipeline/RunPipeline.ps1 @@ -192,11 +192,21 @@ try { } if ($installAppsJson -and (Test-Path $installAppsJson)) { - $install.Apps += @(Get-Content -Path $installAppsJson -Raw | ConvertFrom-Json) + try { + $install.Apps += @(Get-Content -Path $installAppsJson -Raw | ConvertFrom-Json) + } + catch { + throw "Failed to parse JSON file at path '$installAppsJson'. Error: $($_.Exception.Message)" + } } if ($installTestAppsJson -and (Test-Path $installTestAppsJson)) { - $install.TestApps += @(Get-Content -Path $installTestAppsJson -Raw | ConvertFrom-Json) + try { + $install.TestApps += @(Get-Content -Path $installTestAppsJson -Raw | ConvertFrom-Json) + } + catch { + throw "Failed to parse JSON file at path '$installTestAppsJson'. Error: $($_.Exception.Message)" + } } # Replace secret names in install.apps and install.testApps From 2246edff4a0a8b6d180ce22808d9760a21acc5ac Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Mon, 1 Dec 2025 09:28:55 +0000 Subject: [PATCH 07/11] Casing --- .../DownloadProjectDependencies.Action.ps1 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 b/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 index dc514e8346..be9f84fb75 100644 --- a/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 +++ b/Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 @@ -130,10 +130,10 @@ $downloadedTestApps = @() $downloadedDependencies | ForEach-Object { # naming convention: app, (testapp) if ($_.startswith('(')) { - $DownloadedTestApps += $_ + $downloadedTestApps += $_ } else { - $DownloadedApps += $_ + $downloadedApps += $_ } } @@ -142,10 +142,10 @@ OutputMessageAndArray -message "Downloaded dependencies (Test Apps)" -arrayOfStr # Write the downloaded apps and test apps to temporary JSON files and set them as GitHub Action outputs $tempPath = NewTemporaryFolder -$DownloadedAppsJson = Join-Path $tempPath "DownloadedApps.json" -$DownloadedTestAppsJson = Join-Path $tempPath "DownloadedTestApps.json" -ConvertTo-Json $DownloadedApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $DownloadedAppsJson -ConvertTo-Json $DownloadedTestApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $DownloadedTestAppsJson +$downloadedAppsJson = Join-Path $tempPath "DownloadedApps.json" +$downloadedTestAppsJson = Join-Path $tempPath "DownloadedTestApps.json" +ConvertTo-Json $downloadedApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $downloadedAppsJson +ConvertTo-Json $downloadedTestApps -Depth 99 -Compress | Out-File -Encoding UTF8 -FilePath $downloadedTestAppsJson -Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedApps=$DownloadedAppsJson" -Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedTestApps=$DownloadedTestAppsJson" +Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedApps=$downloadedAppsJson" +Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "DownloadedTestApps=$downloadedTestAppsJson" From 129237cc123fb93ce245b625aeb8fe4392dd600c Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Mon, 1 Dec 2025 09:30:56 +0000 Subject: [PATCH 08/11] Docs --- Actions/DownloadProjectDependencies/README.md | 4 ++-- Actions/DownloadProjectDependencies/action.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Actions/DownloadProjectDependencies/README.md b/Actions/DownloadProjectDependencies/README.md index 4df0bc14b6..4892918f1f 100644 --- a/Actions/DownloadProjectDependencies/README.md +++ b/Actions/DownloadProjectDependencies/README.md @@ -37,5 +37,5 @@ The action constructs arrays of paths to .app files, that are dependencies of th | Name | Description | | :-- | :-- | -| DownloadedApps | A JSON-formatted list of paths to .app files, that dependencies of the apps | -| DownloadedTestApps | A JSON-formatted list of paths to .app files, that dependencies of the test apps | +| DownloadedApps | A path to a JSON-formatted list of apps to install | +| DownloadedTestApps | A path to a JSON-formatted list of test apps to install | diff --git a/Actions/DownloadProjectDependencies/action.yaml b/Actions/DownloadProjectDependencies/action.yaml index 4c85e1d3a3..befff9c37b 100644 --- a/Actions/DownloadProjectDependencies/action.yaml +++ b/Actions/DownloadProjectDependencies/action.yaml @@ -21,10 +21,10 @@ inputs: default: '0' outputs: DownloadedApps: - description: A JSON-formatted array of paths to .app files of the apps that were downloaded + description: A path to a JSON-formatted list of apps to install value: ${{ steps.DownloadDependencies.outputs.DownloadedApps }} DownloadedTestApps: - description: A JSON-formatted array of paths to .app files of the test apps that were downloaded + description: A path to a JSON-formatted list of test apps to install value: ${{ steps.DownloadDependencies.outputs.DownloadedTestApps }} runs: using: composite From d79513333a2b807429064dc674bcdde59248f1af Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Wed, 3 Dec 2025 13:08:44 +0100 Subject: [PATCH 09/11] Add note about issues with large environment variables --- RELEASENOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3d36f7f5d5..950f38702f 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,3 +1,6 @@ +### Issues +- AL-Go repositories with large amounts of projects may run into issues with too large environment variables + ## v8.1 ### Custom AL-Go files From 27d364e7bc64717ceab12ec909694e6096f40f15 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:17:59 +0100 Subject: [PATCH 10/11] Apply suggestion from @mazhelez Co-authored-by: Maria Zhelezova <43066499+mazhelez@users.noreply.github.com> --- RELEASENOTES.md | 1 - 1 file changed, 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 950f38702f..3db5254581 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -60,7 +60,6 @@ Read more at [workflowDefaultInputs](https://aka.ms/algosettings#workflowDefault - Issue 2016 Running Update AL-Go system files with branches wildcard `*` tries to update _origin_ - Issue 1960 Deploy Reference Documentation fails - Discussion 1952 Set default values on workflow_dispatch input -- AL-Go repositories with large amounts of projects may run into issues with too large environment variables ### Deprecations From baf39036167e1fc53599d50eb6ec66fca5c9a107 Mon Sep 17 00:00:00 2001 From: Alexander Holstrup <117829001+aholstrup1@users.noreply.github.com> Date: Wed, 3 Dec 2025 13:48:55 +0000 Subject: [PATCH 11/11] pre-commit --- RELEASENOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3db5254581..609e1dbb2a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,4 +1,5 @@ ### Issues + - AL-Go repositories with large amounts of projects may run into issues with too large environment variables ## v8.1