* Disable dependency on azure-core until azure-core releases to vcpkg. * Remove release artifact creation script and pipeline step * Copy items from root cmake generate outputs (no need to do individual project preparation) * Space * Add VcpkgPortName (package port names may change in the future to include non v1 version numbers like azure-template-cpp-v2) * Destination should be artifact name, not vcpkg port name * Disable PR steps * SHA512 1 -> SHA512 %SHA512% * New release procedure * Unblock publishing process * Increment azure-template version * Update branch strategy, uncomment final release of template * Increment version to test release * Fix remote branch checkout logic * Increment version * Exit successfully * Increment version * Increment Version * Version Increment * Add a difference in the output file to validate multiple runs against a target PR branch * Enable existing PR branches in create-pull-request.yml * Increment version * Fix archetype-cpp-release.yml syntax * Skip checkout instead * Increment version * Fix automated version incrementing * Increment version * Update CHANGELOG.md * Update CHANGELOG.md date * Revert CONTROL file * Remove Build-Depends * Increment version * Output commands * Check out branch in either branch scenario * Increment version * Fetch the .tar.gz file using convention, the REST API does not give the location of the .tar.gz * Increment Version * ToLower * Increment * Increment version * Version updater should not append a new line to the end of the file contents (existing new line at the end of the file will remain, if present) * Add azure-template2 to validate base case of shipping different packages instead of file replacement validation from previous runs * Remove extra backtick * Add template2 to root CMakeLists.txt * Review feedback: Support main scenario with packages coming from different location (no new file conflicts) * Remove file blocking link check step. This is ok because the whole azure-template2 folder will be removed after this verification is complete * Version increment * Make template2 install in different locations * Increment version * Remove azure-template2 that was used for validating publishing multiple packages * Remove template2 from ci.yml * Use "SHA512 1" syntax as proposed by vcpkg documentation and regex replacement * Review feedback * Increment version * Quotes * Review feedback and re-add New-ReleaseAsset.ps1
70 lines
2.8 KiB
PowerShell
70 lines
2.8 KiB
PowerShell
$Language = "cpp"
|
|
$PackageRepository = "CPP"
|
|
$packagePattern = "*.json"
|
|
$MetadataUri = "https://raw.githubusercontent.com/Azure/azure-sdk/master/_data/releases/latest/cpp-packages.csv"
|
|
$BlobStorageUrl = "https://azuresdkdocs.blob.core.windows.net/%24web?restype=container&comp=list&prefix=cpp%2F&delimiter=%2F"
|
|
|
|
|
|
|
|
function Get-cpp-PackageInfoFromRepo($pkgPath, $serviceDirectory, $pkgName)
|
|
{
|
|
$packageVersion = & $PSScriptRoot/Get-PkgVersion.ps1 -ServiceDirectory $serviceDirectory -PackageName $pkgName
|
|
return [PackageProps]::new($pkgName, $packageVersion, $pkgPath, $serviceDirectory)
|
|
}
|
|
|
|
# Parse out package publishing information from a package-info.json file.
|
|
function Get-cpp-PackageInfoFromPackageFile($pkg, $workingDirectory)
|
|
{
|
|
$packageInfo = Get-Content -Raw -Path $pkg | ConvertFrom-Json
|
|
$packageArtifactLocation = (Get-ItemProperty $pkg).Directory.FullName
|
|
$releaseNotes = ""
|
|
$readmeContent = ""
|
|
|
|
$pkgVersion = $packageInfo.version
|
|
$pkgName = $packageInfo.name
|
|
|
|
$changeLogLoc = @(Get-ChildItem -Path $packageArtifactLocation -Recurse -Include "CHANGELOG.md")[0]
|
|
if ($changeLogLoc)
|
|
{
|
|
$releaseNotes = Get-ChangeLogEntryAsString -ChangeLogLocation $changeLogLoc -VersionString $pkgVersion
|
|
}
|
|
|
|
$readmeContentLoc = @(Get-ChildItem -Path $packageArtifactLocation -Recurse -Include "README.md")[0]
|
|
if ($readmeContentLoc)
|
|
{
|
|
$readmeContent = Get-Content -Raw $readmeContentLoc
|
|
}
|
|
|
|
return New-Object PSObject -Property @{
|
|
PackageId = $pkgName
|
|
PackageVersion = $pkgVersion
|
|
ReleaseTag = "${pkgName}_${pkgVersion}"
|
|
# Artifact info is always considered deployable for now becasue it is not
|
|
# deployed anywhere. Dealing with duplicate tags happens downstream in
|
|
# CheckArtifactShaAgainstTagsList
|
|
Deployable = $true
|
|
ReleaseNotes = $releaseNotes
|
|
}
|
|
}
|
|
|
|
# Stage and Upload Docs to blob Storage
|
|
function Publish-cpp-GithubIODocs ($DocLocation, $PublicArtifactLocation)
|
|
{
|
|
$packageInfo = (Get-Content (Join-Path $DocLocation 'package-info.json') | ConvertFrom-Json)
|
|
$releaseTag = RetrieveReleaseTag "CPP" $PublicArtifactLocation
|
|
Upload-Blobs -DocDir $DocLocation -PkgName $packageInfo.name -DocVersion $packageInfo.version -ReleaseTag $releaseTag
|
|
}
|
|
|
|
function Get-cpp-GithubIoDocIndex() {
|
|
# Update the main.js and docfx.json language content
|
|
UpdateDocIndexFiles -appTitleLang "C++"
|
|
# Fetch out all package metadata from csv file.
|
|
$metadata = Get-CSVMetadata -MetadataUri $MetadataUri
|
|
# Get the artifacts name from blob storage
|
|
$artifacts = Get-BlobStorage-Artifacts -blobStorageUrl $BlobStorageUrl -blobDirectoryRegex "^cpp/(.*)/$" -blobArtifactsReplacement '$1'
|
|
# Build up the artifact to service name mapping for GithubIo toc.
|
|
$tocContent = Get-TocMapping -metadata $metadata -artifacts $artifacts
|
|
# Generate yml/md toc files and build site.
|
|
GenerateDocfxTocContent -tocContent $tocContent -lang "C++"
|
|
}
|