* 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
60 lines
1.8 KiB
PowerShell
60 lines
1.8 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Downloads the release asset and mutates the portfile.cmake file to use the
|
|
SHA512 hash of the release asset.
|
|
|
|
.PARAMETER SourceDirectory
|
|
Location of vcpkg assets (usually `<artifact-path>/packages/<package-name>/vcpkg`)
|
|
|
|
.PARAMETER PackageSpecPath
|
|
Location of the relevant package-info.json file
|
|
|
|
.PARAMETER GitHubRepo
|
|
Name of the GitHub repo (of the form Azure/azure-sdk-for-cpp)
|
|
|
|
#>
|
|
|
|
param (
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string] $SourceDirectory,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string] $PackageSpecPath,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string] $GitHubRepo
|
|
)
|
|
|
|
# If there's nothing in the "port" folder to upload set SkipVcpkgUpdate to true
|
|
# and exit. Other steps will check SkipVcpkgUpdate to decide whether to move
|
|
# forward.
|
|
if (!(Get-ChildItem -Path "$SourceDirectory/port/CONTROL")) {
|
|
Write-Host "###vso[task.setvariable variable=SkipVcpkgUpdate]true"
|
|
exit
|
|
}
|
|
|
|
$packageSpec = Get-Content -Raw -Path $PackageSpecPath | ConvertFrom-Json
|
|
$tarGzUri = "https://github.com/$GitHubRepo/archive/$($packageSpec.packageName).tar.gz"
|
|
|
|
Write-Host "Downloading tarball to compute hash from $tarGzUri"
|
|
$localTarGzPath = New-TemporaryFile
|
|
Invoke-WebRequest -Uri $tarGzUri -OutFile $localTarGzPath
|
|
|
|
$sha512 = (Get-FileHash -Path $localTarGzPath -Algorithm SHA512).Hash.ToLower()
|
|
Write-Host "SHA512: $sha512"
|
|
|
|
Write-Verbose "Writing the SHA512 hash"
|
|
$portfileLocation = "$SourceDirectory/port/portfile.cmake"
|
|
|
|
# Regex replace SHA512 preserving spaces. The placeholder "SHA512 1" is
|
|
# recommended in vcpkg documentation
|
|
# Before: " SHA512 1"
|
|
# After: " SHA512 f6cf1c16c52"
|
|
$newContent = Get-Content -Raw -Path $portfileLocation `
|
|
| ForEach-Object { $_ -replace '(SHA512\s+)1', "`${1}$sha512" }
|
|
|
|
$newContent | Set-Content $portfileLocation
|