Sync eng/common directory with azure-sdk-tools repository for Tools PR 1022 (#670)
This commit is contained in:
parent
d3c437947a
commit
94e0f7747b
@ -1,62 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Uploads the release asset and returns the resulting object from the upload
|
||||
|
||||
.PARAMETER ReleaseTag
|
||||
Tag to look up release
|
||||
|
||||
.PARAMETER AssetPath
|
||||
Location of the asset file to upload
|
||||
|
||||
.PARAMETER GitHubRepo
|
||||
Name of the GitHub repo to search (of the form Azure/azure-sdk-for-cpp)
|
||||
|
||||
#>
|
||||
|
||||
param (
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $ReleaseTag,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $AssetPath,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $GitHubRepo,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $GitHubPat
|
||||
)
|
||||
|
||||
# Get information about release at $ReleaseTag
|
||||
$releaseInfoUrl = "https://api.github.com/repos/$GitHubRepo/releases/tags/$ReleaseTag"
|
||||
Write-Verbose "Requesting release info from $releaseInfoUrl"
|
||||
$release = Invoke-RestMethod `
|
||||
-Uri $releaseInfoUrl `
|
||||
-Method GET
|
||||
|
||||
$assetFilename = Split-Path $AssetPath -Leaf
|
||||
|
||||
# Upload URL comes in the literal form (yes, those curly braces) of:
|
||||
# https://uploads.github.com/repos/Azure/azure-sdk-for-cpp/releases/123/assets{?name,label}
|
||||
# Converts to something like:
|
||||
# https://uploads.github.com/repos/Azure/azure-sdk-for-cpp/releases/123/assets?name=foo.tar.gz
|
||||
# Docs: https://docs.github.com/en/rest/reference/repos#get-a-release-by-tag-name
|
||||
$uploadUrl = $release.upload_url.Split('{')[0] + "?name=$assetFilename"
|
||||
|
||||
Write-Verbose "Uploading $assetFilename to $uploadUrl"
|
||||
|
||||
$asset = Invoke-RestMethod `
|
||||
-Uri $uploadUrl `
|
||||
-Method POST `
|
||||
-InFile $AssetPath `
|
||||
-Credential $credentials `
|
||||
-Headers @{ Authorization = "token $GitHubPat" } `
|
||||
-ContentType "application/gzip"
|
||||
|
||||
Write-Verbose "Upload complete. Browser download URL: $($asset.browser_download_url)"
|
||||
|
||||
return $asset
|
||||
@ -257,30 +257,31 @@ if ($Language -eq "javascript")
|
||||
|
||||
if ($Language -eq "dotnet")
|
||||
{
|
||||
$PublishedPkgs = Get-ChildItem "$($DocLocation)/packages" | Where-Object -FilterScript {$_.Name.EndsWith(".nupkg") -and -not $_.Name.EndsWith(".symbols.nupkg")}
|
||||
$PublishedDocs = Get-ChildItem "$($DocLocation)" | Where-Object -FilterScript {$_.Name.StartsWith("Docs.")}
|
||||
$PublishedPkgs = Get-ChildItem "$($DocLocation)" | Where-Object -FilterScript {$_.Name.EndsWith(".nupkg") -and -not $_.Name.EndsWith(".symbols.nupkg")}
|
||||
$PublishedDocs = Get-ChildItem "$($DocLocation)" | Where-Object -FilterScript {$_.Name.EndsWith("docs.zip")}
|
||||
|
||||
foreach ($Item in $PublishedDocs) {
|
||||
$PkgName = $Item.Name.Remove(0, 5)
|
||||
$PkgFullName = $PublishedPkgs | Where-Object -FilterScript {$_.Name -match "$($PkgName).\d"}
|
||||
|
||||
if (($PkgFullName | Measure-Object).count -eq 1)
|
||||
{
|
||||
$DocVersion = $PkgFullName[0].BaseName.Remove(0, $PkgName.Length + 1)
|
||||
|
||||
Write-Host "Start Upload for $($PkgName)/$($DocVersion)"
|
||||
Write-Host "DocDir $($Item)"
|
||||
Write-Host "PkgName $($PkgName)"
|
||||
Write-Host "DocVersion $($DocVersion)"
|
||||
$releaseTag = RetrieveReleaseTag "Nuget" $PublicArtifactLocation
|
||||
Upload-Blobs -DocDir "$($Item)" -PkgName $PkgName -DocVersion $DocVersion -ReleaseTag $releaseTag
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Package with the same name Exists. Upload Skipped"
|
||||
continue
|
||||
}
|
||||
if (($PublishedPkgs.Count -gt 1) -or ($PublishedDoc.Count -gt 1))
|
||||
{
|
||||
Write-Host "$($DocLocation) should contain only one (1) published package and docs"
|
||||
Write-Host "No of Packages $($PublishedPkgs.Count)"
|
||||
Write-Host "No of Docs $($PublishedDoc.Count)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$DocsStagingDir = "$WorkingDirectory/docstaging"
|
||||
$TempDir = "$WorkingDirectory/temp"
|
||||
|
||||
New-Item -ItemType directory -Path $DocsStagingDir
|
||||
New-Item -ItemType directory -Path $TempDir
|
||||
|
||||
Expand-Archive -LiteralPath $PublishedDocs[0].FullName -DestinationPath $DocsStagingDir
|
||||
$pkgProperties = ParseNugetPackage -pkg $PublishedPkgs[0].FullName -workingDirectory $TempDir
|
||||
|
||||
Write-Host "Start Upload for $($pkgProperties.ReleaseTag)"
|
||||
Write-Host "DocDir $($DocsStagingDir)"
|
||||
Write-Host "PkgName $($pkgProperties.PackageId)"
|
||||
Write-Host "DocVersion $($pkgProperties.PackageVersion)"
|
||||
Upload-Blobs -DocDir "$($DocsStagingDir)" -PkgName $pkgProperties.PackageId -DocVersion $pkgProperties.PackageVersion -ReleaseTag $pkgProperties.ReleaseTag
|
||||
}
|
||||
|
||||
if ($Language -eq "python")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user