118 lines
4.7 KiB
YAML
118 lines
4.7 KiB
YAML
parameters:
|
|
- name: PackageInfoLocations
|
|
type: object
|
|
default: []
|
|
- name: RepoId
|
|
type: string
|
|
default: $(Build.Repository.Name)
|
|
- name: WorkingDirectory
|
|
type: string
|
|
default: ''
|
|
- name: ScriptDirectory
|
|
type: string
|
|
default: eng/common/scripts
|
|
- name: TargetDocRepoName
|
|
type: string
|
|
default: ''
|
|
- name: TargetDocRepoOwner
|
|
type: string
|
|
- name: Language
|
|
type: string
|
|
default: ''
|
|
- name: DailyDocsBuild
|
|
type: boolean
|
|
default: false
|
|
- name: SparseCheckoutPaths
|
|
type: object
|
|
default:
|
|
- '**'
|
|
- name: PackageSourceOverride
|
|
type: string
|
|
default: ''
|
|
- name: DocValidationImageId
|
|
type: string
|
|
default: ''
|
|
steps:
|
|
- ${{ if eq(length(parameters.PackageInfoLocations), 0) }}:
|
|
- pwsh: |
|
|
Write-Host "Skipping DocsMS Update because package list was empty."
|
|
displayName: Skip DocsMS Update
|
|
- ${{ else }}:
|
|
- template: /eng/common/pipelines/templates/steps/enable-long-path-support.yml
|
|
|
|
- pwsh: |
|
|
Write-Host "###vso[task.setvariable variable=DocRepoLocation]${{ parameters.WorkingDirectory }}/doc"
|
|
displayName: Set $(DocRepoLocation)
|
|
|
|
- template: /eng/common/pipelines/templates/steps/sparse-checkout.yml
|
|
parameters:
|
|
SkipCheckoutNone: true
|
|
Repositories:
|
|
- Name: ${{ parameters.TargetDocRepoOwner }}/${{ parameters.TargetDocRepoName }}
|
|
WorkingDirectory: $(DocRepoLocation)
|
|
Paths: ${{ parameters.SparseCheckoutPaths }}
|
|
|
|
# If performing a daily docs build set the $(TargetBranchName) to a daily branch
|
|
# name and attempt to checkout the daily docs branch. If the branch doesn't
|
|
# exist, create it
|
|
- ${{ if eq(parameters.DailyDocsBuild, 'true') }}:
|
|
- template: /eng/common/pipelines/templates/steps/set-daily-docs-branch-name.yml
|
|
|
|
- pwsh: |
|
|
$ErrorActionPreference = "Continue"
|
|
$RemoteName = "origin"
|
|
$BranchName = "$(TargetBranchName)"
|
|
# Fetch and checkout remote branch if it already exists otherwise create a new branch.
|
|
git ls-remote --exit-code --heads $RemoteName $BranchName
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host "git fetch $RemoteName $BranchName"
|
|
git fetch $RemoteName $BranchName
|
|
Write-Host "git checkout $BranchName."
|
|
git checkout $BranchName
|
|
} else {
|
|
Write-Host "git checkout -b $BranchName."
|
|
git checkout -b $BranchName
|
|
}
|
|
displayName: Checkout daily docs branch if it exists
|
|
workingDirectory: $(DocRepoLocation)
|
|
|
|
# If NOT performing a daily docs build, set the $(TargetBranchName) to the
|
|
# default branch of the documentation repository.
|
|
- ${{ if ne(parameters.DailyDocsBuild, 'true') }}:
|
|
- template: /eng/common/pipelines/templates/steps/set-default-branch.yml
|
|
parameters:
|
|
WorkingDirectory: $(DocRepoLocation)
|
|
DefaultBranchVariableName: TargetBranchName
|
|
# Pull and build the docker image.
|
|
- ${{ if ne(parameters.DocValidationImageId, '') }}:
|
|
- template: /eng/common/pipelines/templates/steps/docker-pull-image.yml
|
|
parameters:
|
|
ContainerRegistryClientId: $(azuresdkimages-cr-clientid)
|
|
ContainerRegistryClientSecret: $(azuresdkimages-cr-clientsecret)
|
|
ImageId: '${{ parameters.DocValidationImageId }}'
|
|
- pwsh: |
|
|
$packageInfoJson = '${{ convertToJson(parameters.PackageInfoLocations) }}'.Trim('"').Replace("\\", "/")
|
|
# Without -NoEnumerate, a single element array[T] gets unwrapped as a single item T.
|
|
$packageInfoLocations = ConvertFrom-Json $packageInfoJson -NoEnumerate
|
|
${{ parameters.ScriptDirectory }}/Update-DocsMsMetadata.ps1 `
|
|
-PackageInfoJsonLocations $packageInfoLocations `
|
|
-DocRepoLocation "$(DocRepoLocation)" `
|
|
-Language '${{parameters.Language}}' `
|
|
-RepoId '${{ parameters.RepoId }}' `
|
|
-DocValidationImageId '${{ parameters.DocValidationImageId }}' `
|
|
-PackageSourceOverride '${{ parameters.PackageSourceOverride }}' `
|
|
-TenantId '$(opensource-aad-tenant-id)' `
|
|
-ClientId '$(opensource-aad-app-id)' `
|
|
-ClientSecret '$(opensource-aad-secret)'
|
|
displayName: Apply Documentation Updates
|
|
|
|
- template: /eng/common/pipelines/templates/steps/git-push-changes.yml
|
|
parameters:
|
|
BaseRepoBranch: $(TargetBranchName)
|
|
BaseRepoOwner: ${{ parameters.TargetDocRepoOwner }}
|
|
CommitMsg: "Update docs metadata"
|
|
TargetRepoName: ${{ parameters.TargetDocRepoName }}
|
|
TargetRepoOwner: ${{ parameters.TargetDocRepoOwner }}
|
|
WorkingDirectory: $(DocRepoLocation)
|
|
ScriptDirectory: ${{ parameters.WorkingDirectory }}/${{ parameters.ScriptDirectory }}
|