diff --git a/Actions/AL-Go-Helper.ps1 b/Actions/AL-Go-Helper.ps1 index 8c2110c09..46098c37c 100644 --- a/Actions/AL-Go-Helper.ps1 +++ b/Actions/AL-Go-Helper.ps1 @@ -27,7 +27,7 @@ $RepoSettingsFile = Join-Path '.github' 'AL-Go-Settings.json' $defaultCICDPushBranches = @( 'main', 'release/*', 'feature/*' ) [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'defaultCICDPullRequestBranches', Justification = 'False positive.')] $defaultCICDPullRequestBranches = @( 'main' ) -$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 = @( diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 7dc0bc4bd..103cde248 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,19 @@ function GenerateDocsSite { foreach($value in $allApps.Values) { $apps += @($value) } + + # Include dependencies for ALDoc to resolve symbols correctly + $dependencies = @() + 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 + @( @@ -235,6 +249,7 @@ function GenerateDocsSite { "--output ""$docfxpath""" "--loglevel $loglevel" "--source ""$_""" + "--packagecache ""$($dependencies -join '","')""" ) Write-Host "invoke $aldocCommand $arguments" CmdDo -command $aldocCommand -arguments $arguments diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.ps1 index 990fcd988..8bd2e6b11 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 @@ -67,7 +83,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 +123,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::"