diff --git a/eng/pipelines/docindex.yml b/eng/pipelines/docindex.yml index 727005db866c..ce9eb750e56f 100644 --- a/eng/pipelines/docindex.yml +++ b/eng/pipelines/docindex.yml @@ -69,7 +69,7 @@ jobs: inputs: pwsh: true filePath: eng/common/scripts/Update-DocsMsPackages.ps1 - arguments: -DocRepoLocation $(DocRepoLocation) -ImageId '$(DocValidationImageId)' + arguments: -DocRepoLocation $(DocRepoLocation) displayName: Update Docs Onboarding for Daily branch - template: /eng/common/pipelines/templates/steps/git-push-changes.yml diff --git a/eng/pipelines/templates/stages/archetype-js-release.yml b/eng/pipelines/templates/stages/archetype-js-release.yml index 0485c075ca0d..dc968559e951 100644 --- a/eng/pipelines/templates/stages/archetype-js-release.yml +++ b/eng/pipelines/templates/stages/archetype-js-release.yml @@ -140,6 +140,8 @@ stages: SparseCheckoutPaths: - docs-ref-services/ - metadata/ + - ci-configs/packages-latest.json + - ci-configs/packages-preview.json - ${{if ne(artifact.skipPublishDocGithubIo, 'true')}}: - deployment: PublishDocsGitHubIO @@ -307,3 +309,5 @@ stages: SparseCheckoutPaths: - docs-ref-services/ - metadata/ + - ci-configs/packages-latest.json + - ci-configs/packages-preview.json diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index e264cc86b911..bfe63a63b07a 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -233,7 +233,7 @@ function Get-DocsMsPackageName($packageName, $packageVersion) { # registry = ""; # ... # } -function ValidatePackagesForDocs($packages) { +function ValidatePackagesForDocs($packages, $DocValidationImageId) { # Using GetTempPath because it works on linux and windows $tempDirectory = Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName()) New-Item -ItemType Directory -Force -Path $tempDirectory | Out-Null @@ -244,7 +244,7 @@ function ValidatePackagesForDocs($packages) { # Get value for variables outside of the Foreach-Object scope $scriptRoot = "$using:scriptRoot" $workingDirectory = "$using:tempDirectory" - return ."$scriptRoot\validate-docs-package.ps1" -Package $_ -DocValidationImageId "$using:ImageId" -WorkingDirectory $workingDirectory + return ."$scriptRoot\validate-docs-package.ps1" -Package $_ -DocValidationImageId "$using:DocValidationImageId" -WorkingDirectory $workingDirectory } # Clean up temp folder @@ -260,8 +260,7 @@ $PackageExclusions = @{ '@azure/core-asynciterator-polyfill' = 'Docs CI fails https://github.com/Azure/azure-sdk-for-js/issues/16675'; } -function Update-javascript-DocsMsPackages($DocsRepoLocation, $DocsMetadata) { - +function Update-javascript-DocsMsPackages($DocsRepoLocation, $DocsMetadata, $DocValidationImageId) { Write-Host "Excluded packages:" foreach ($excludedPackage in $PackageExclusions.Keys) { Write-Host " $excludedPackage - $($PackageExclusions[$excludedPackage])" @@ -273,16 +272,18 @@ function Update-javascript-DocsMsPackages($DocsRepoLocation, $DocsMetadata) { (Join-Path $DocsRepoLocation 'ci-configs/packages-preview.json') ` 'preview' ` $FilteredMetadata ` - (Join-Path $DocsRepoLocation 'ci-configs/packages-preview.json.log') # Log file for package validation - + (Join-Path $DocsRepoLocation 'ci-configs/packages-preview.json.log') ` + $DocValidationImageId + UpdateDocsMsPackages ` (Join-Path $DocsRepoLocation 'ci-configs/packages-latest.json') ` 'latest' ` $FilteredMetadata ` - (Join-Path $DocsRepoLocation 'ci-configs/packages-latest.json.log') # Log file for package validation + (Join-Path $DocsRepoLocation 'ci-configs/packages-latest.json.log') ` + $DocValidationImageId } -function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata, $PackageHistoryLogFile) { +function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata, $PackageHistoryLogFile, $DocValidationImageId) { Write-Host "Updating configuration: $DocConfigFile with mode: $Mode" $packageConfig = Get-Content $DocConfigFile -Raw | ConvertFrom-Json @@ -373,7 +374,7 @@ function UpdateDocsMsPackages($DocConfigFile, $Mode, $DocsMetadata, $PackageHist $outputPackages += @{ name = $packageName } } - $packageValidation = ValidatePackagesForDocs $outputPackages + $packageValidation = ValidatePackagesForDocs $outputPackages $DocValidationImageId $validationHash = @{} foreach ($result in $packageValidation) { $validationHash[$result.Package.name] = $result @@ -468,3 +469,28 @@ function GetExistingPackageVersions ($PackageName, $GroupId = $null) return $null } } + +function Validate-javascript-DocMsPackages ($PackageInfo, $DocRepoLocation, $DocValidationImageId) +{ + $fileLocation = "" + if ($PackageInfo.DevVersion -or $PackageInfo.Version -contains "beta") { + $fileLocation = (Join-Path $DocRepoLocation 'ci-configs/packages-preview.json') + if ($PackageInfo.DevVersion) { + $PackageInfo.Version = $PackageInfo.DevVersion + } + } + else { + $fileLocation = (Join-Path $DocRepoLocation 'ci-configs/packages-latest.json') + } + + $packageConfig = Get-Content $fileLocation -Raw | ConvertFrom-Json + $outputPackage = $PackageInfo + foreach ($package in $packageConfig.npm_package_sources) { + if ($package.name -eq $PackageInfo.Name) { + $outputPackage = $package + $outputPackage.name = Get-DocsMsPackageName $package.name $PackageInfo.Version + break + } + } + ValidatePackagesForDocs -packages $outputPackage -DocValidationImageId $DocValidationImageId +} diff --git a/eng/scripts/validate-docs-package.ps1 b/eng/scripts/validate-docs-package.ps1 index 840eb11e2bfa..0283684e9bc1 100644 --- a/eng/scripts/validate-docs-package.ps1 +++ b/eng/scripts/validate-docs-package.ps1 @@ -63,6 +63,7 @@ function DockerValidation() { $commandLine = "$commandLine$folder" } $commandLine = "$commandLine $DocValidationImageId 2>&1" + Write-Host $commandLine $installOutput = Invoke-Expression $commandLine # The docker exit codes: https://docs.docker.com/engine/reference/run/#exit-status