From 0a723278d86398cf163717560e3c75e01c7271bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 10 Jul 2025 07:18:39 +0000 Subject: [PATCH 1/8] Initial plan From c00c0d382da5723c87e796a3f521cd432305d1a5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 10 Jul 2025 07:24:56 +0000 Subject: [PATCH 2/8] Fix ALDoc missing symbols by including dependencies in build process Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com> --- .../BuildReferenceDocumentation.HelperFunctions.ps1 | 9 +++++++++ .../BuildReferenceDocumentation.ps1 | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 7dc0bc4bd3..c94679b507 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -131,6 +131,7 @@ function GenerateDocsSite { [string] $version, [string[]] $allVersions, [hashtable] $allApps, + [hashtable] $allDependencies, [string] $repoName, [string] $releaseNotes, [string] $header, @@ -195,6 +196,14 @@ function GenerateDocsSite { foreach($value in $allApps.Values) { $apps += @($value) } + + # Include dependencies for ALDoc to resolve symbols correctly + if ($allDependencies) { + foreach($value in $allDependencies.Values) { + $apps += @($value) + } + } + $apps = @($apps | Select-Object -Unique) $arguments = $aldocArguments + @( diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 index 990fcd9889..3040ea63d9 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 @@ -67,7 +67,7 @@ foreach($release in $releases) { $allApps, $allDependencies = CalculateProjectsAndApps -tempFolder $tempFolder -includeProjects $includeProjects -excludeProjects $excludeProjects -groupByProject:$settings.alDoc.groupByProject $version = $release.Name $releaseNotes = $release.body - GenerateDocsSite -version $version -allVersions $versions -allApps $allApps -repoName $settings.repoName -releaseNotes $releaseNotes -header $header -footer $footer -defaultIndexMD $defaultIndexMD -defaultReleaseMD $defaultReleaseMD -docsPath $docsPath -logLevel $logLevel -groupByProject:$settings.alDoc.groupByProject + GenerateDocsSite -version $version -allVersions $versions -allApps $allApps -allDependencies $allDependencies -repoName $settings.repoName -releaseNotes $releaseNotes -header $header -footer $footer -defaultIndexMD $defaultIndexMD -defaultReleaseMD $defaultReleaseMD -docsPath $docsPath -logLevel $logLevel -groupByProject:$settings.alDoc.groupByProject do { try { $retry = $false @@ -107,7 +107,7 @@ if ($latestReleaseTag) { else { $releaseNotes = '' } -GenerateDocsSite -version '' -allVersions $versions -allApps $allApps -repoName $settings.repoName -releaseNotes $releaseNotes -header $header -footer $footer -defaultIndexMD $defaultIndexMD -defaultReleaseMD $defaultReleaseMD -docsPath $docsPath -logLevel $logLevel -groupByProject:$settings.alDoc.groupByProject +GenerateDocsSite -version '' -allVersions $versions -allApps $allApps -allDependencies $allDependencies -repoName $settings.repoName -releaseNotes $releaseNotes -header $header -footer $footer -defaultIndexMD $defaultIndexMD -defaultReleaseMD $defaultReleaseMD -docsPath $docsPath -logLevel $logLevel -groupByProject:$settings.alDoc.groupByProject Write-Host "::endgroup::" From a9e0737d918cd25b2c6f7a2e04b6b7fda6ff602f Mon Sep 17 00:00:00 2001 From: Maria Zhelezova <43066499+mazhelez@users.noreply.github.com> Date: Tue, 15 Jul 2025 14:33:35 +0200 Subject: [PATCH 3/8] Update BuildReferenceDocumentation.HelperFunctions.ps1 --- .../BuildReferenceDocumentation.HelperFunctions.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index c94679b507..9e785cb529 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -196,14 +196,14 @@ function GenerateDocsSite { foreach($value in $allApps.Values) { $apps += @($value) } - + # Include dependencies for ALDoc to resolve symbols correctly if ($allDependencies) { foreach($value in $allDependencies.Values) { $apps += @($value) } } - + $apps = @($apps | Select-Object -Unique) $arguments = $aldocArguments + @( From 55744d52debe50b77dea72d9cd7dc92c4df65bcf Mon Sep 17 00:00:00 2001 From: Maria Zhelezova Date: Wed, 16 Jul 2025 14:25:51 +0200 Subject: [PATCH 4/8] Use custom BCContainerHelper --- Actions/AL-Go-Helper.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Actions/AL-Go-Helper.ps1 b/Actions/AL-Go-Helper.ps1 index cddbd9ddcb..12173e21c1 100644 --- a/Actions/AL-Go-Helper.ps1 +++ b/Actions/AL-Go-Helper.ps1 @@ -23,7 +23,7 @@ $defaultCICDPushBranches = @( 'main', 'release/*', 'feature/*' ) [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'defaultCICDPullRequestBranches', Justification = 'False positive.')] $defaultCICDPullRequestBranches = @( 'main' ) $runningLocal = $local.IsPresent -$defaultBcContainerHelperVersion = "preview" # Must be double quotes. Will be replaced by BcContainerHelperVersion if necessary in the deploy step - ex. "https://github.com/organization/navcontainerhelper/archive/refs/heads/branch.zip" +$defaultBcContainerHelperVersion = "https://github.com/microsoft/navcontainerhelper/archive/refs/heads/generate-app-dependencies.zip" # Must be double quotes. Will be replaced by BcContainerHelperVersion if necessary in the deploy step - ex. "https://github.com/organization/navcontainerhelper/archive/refs/heads/branch.zip" $notSecretProperties = @("Scopes","TenantId","BlobName","ContainerName","StorageAccountName","ServerUrl","ppUserName","GitHubAppClientId","EnvironmentName") $runAlPipelineOverrides = @( From ebe8086cc1e219a01b435cf9bc4c48d8a074d512 Mon Sep 17 00:00:00 2001 From: Maria Zhelezova Date: Wed, 16 Jul 2025 15:46:02 +0200 Subject: [PATCH 5/8] Include deplendencies using --packagecache --- .../BuildReferenceDocumentation.HelperFunctions.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 9e785cb529..813a65bdad 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -198,9 +198,10 @@ function GenerateDocsSite { } # Include dependencies for ALDoc to resolve symbols correctly + $dependencies = @() if ($allDependencies) { foreach($value in $allDependencies.Values) { - $apps += @($value) + $dependencies += @($value) } } @@ -244,6 +245,7 @@ function GenerateDocsSite { "--output ""$docfxpath""" "--loglevel $loglevel" "--source ""$_""" + "--packageCache ""$($dependencies -join '","')""" ) Write-Host "invoke $aldocCommand $arguments" CmdDo -command $aldocCommand -arguments $arguments From 30ab0eefa9d19f786a9e06eeca7dc53ac09ee582 Mon Sep 17 00:00:00 2001 From: Maria Zhelezova Date: Wed, 16 Jul 2025 15:49:37 +0200 Subject: [PATCH 6/8] --packageCache --> --packagecache --- .../BuildReferenceDocumentation.HelperFunctions.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 813a65bdad..794fd26ea2 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -245,7 +245,7 @@ function GenerateDocsSite { "--output ""$docfxpath""" "--loglevel $loglevel" "--source ""$_""" - "--packageCache ""$($dependencies -join '","')""" + "--packagecache ""$($dependencies -join '","')""" ) Write-Host "invoke $aldocCommand $arguments" CmdDo -command $aldocCommand -arguments $arguments From 363a533936c67abeb726ee852b136060b6921a07 Mon Sep 17 00:00:00 2001 From: Maria Zhelezova Date: Wed, 16 Jul 2025 16:27:07 +0200 Subject: [PATCH 7/8] Add debug logs --- .../BuildReferenceDocumentation.HelperFunctions.ps1 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 794fd26ea2..103cde2486 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -199,12 +199,16 @@ function GenerateDocsSite { # Include dependencies for ALDoc to resolve symbols correctly $dependencies = @() - if ($allDependencies) { - foreach($value in $allDependencies.Values) { - $dependencies += @($value) - } + foreach($value in $allDependencies.Values) { + $dependencies += @($value) } + Write-Host "Apps to document:" + $apps | ForEach-Object { Write-Host "- $_" } + + Write-Host "Dependencies to use for symbols:" + $dependencies | ForEach-Object { Write-Host "- $_" } + $apps = @($apps | Select-Object -Unique) $arguments = $aldocArguments + @( From bbf83345e0cfd5856e865a3a4a910c9c955d4eb8 Mon Sep 17 00:00:00 2001 From: Maria Zhelezova Date: Wed, 16 Jul 2025 16:30:56 +0200 Subject: [PATCH 8/8] Download dependencies artifact when generating reference documentation --- .../BuildReferenceDocumentation.ps1 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 index 3040ea63d9..8bd2e6b11d 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 @@ -34,6 +34,22 @@ if ($artifacts -ne ".artifacts") { } } Write-Host "::endgroup::" + + # TODO Remove code duplication + Write-Host "::group::Downloading dependencies artifacts" + $allArtifacts = @(GetArtifacts -token $token -api_url $ENV:GITHUB_API_URL -repository $ENV:GITHUB_REPOSITORY -mask "Dependencies" -projects '*' -Version $artifacts -branch $ENV:GITHUB_REF_NAME) + if ($allArtifacts) { + $allArtifacts | ForEach-Object { + $filename = DownloadArtifact -token $token -artifact $_ -path $artifactsFolder + if (!(Test-Path $filename)) { + throw "Unable to download artifact $($_.name)" + } + $destFolder = Join-Path $artifactsFolder ([System.IO.Path]::GetFileNameWithoutExtension($filename)) + Expand-Archive -Path $filename -DestinationPath $destFolder -Force + Remove-Item -Path $filename -Force + } + } + Write-Host "::endgroup::" } $header = $settings.alDoc.header