Update vcpkg-tool to 2022-06-15 (#25226)

* Update vcpkg-tool to 2022-06-15. See https://github.com/microsoft/vcpkg-tool/releases/tag/2022-06-15
* Add `=pass` entries from https://github.com/microsoft/vcpkg-tool/pull/579
* Cherry pick XUnit output from https://github.com/microsoft/vcpkg/pull/23477 which hooks up https://github.com/microsoft/vcpkg-tool/pull/585 (Thanks again @dg0yt !)
* Update release process document now that we can do the full tree rebuild to test the tool release before signing.

Thank you:

@autoantwort 
@christophe-calmejane 
@JackBoosY 
@benmcmorran
@hmoffatt 
@klalumiere 
@Thomas1664 
@Neumann-A 
@AenBleidd

for your contributions!

Fixes https://github.com/microsoft/vcpkg/issues/22686 .
Fixes https://github.com/microsoft/vcpkg/issues/21800 .
Fixes https://github.com/microsoft/vcpkg/issues/16216 .
Fixes https://github.com/microsoft/vcpkg/issues/15836 .

Full tree rebuild testing this update is: https://dev.azure.com/vcpkg/public/_build/results?buildId=73664&view=results
This commit is contained in:
Billy O'Neal 2022-06-15 11:20:52 -07:00 committed by GitHub
parent d2f3f30607
commit 0abb2b2d88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 98 additions and 27 deletions

View File

@ -6,38 +6,37 @@ such as https://github.com/microsoft/vcpkg/pull/23757
1. Verify that all tests etc. are passing in the vcpkg-tool repo's `main` branch, and that the
contents therein are acceptable for release. (Steps after this will sign code there, so this
review is responsible gating what has access to code signing.)
2. On your machine, in a prompt changed to the vcpkg-tool repo,
`git fetch https://github.com/microsoft/vcpkg-tool main && git switch -d FETCH_HEAD`
3. Check that the changes there are in fact the changes that we want in that release. (Be aware,
2. Check that the changes there are in fact the changes that we want in that release. (Be aware,
you are responsible for what is about to be signed with a Microsoft code signing certificate by
proceeding)
4. `git push https://devdiv.visualstudio.com/DevDiv/_git/vcpkg FETCH_HEAD:main`
5. Monitor the resulting signed build at:
3. Submit a new full tree rebuild by https://dev.azure.com/vcpkg/public/_build?definitionId=29
(microsoft.vcpkg.ci as of this writing) and queue a new build with the vcpkg-tool SHA overridden
to the one you wish to use. Example:
https://dev.azure.com/vcpkg/public/_build/results?buildId=73664&view=results
4. (Probably the next day) Check over the failures and ensure any differences with the most recent
full rebuild using the previous tool version are understood.
5. On your machine, in a prompt changed to the vcpkg-tool repo,
`git fetch https://github.com/microsoft/vcpkg-tool main && git switch -d FETCH_HEAD`
6. `git push https://devdiv.visualstudio.com/DevDiv/_git/vcpkg FETCH_HEAD:main`
7. Monitor the resulting signed build at:
https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?definitionId=13610
and/or manually submit one. (The push is supposed to automatically submit a build but that
has been somewhat unstable at the time of this writing.)
6. The signed build will automatically create a draft GitHub release at
8. The signed build will automatically create a draft GitHub release at
https://github.com/microsoft/vcpkg-tool/releases . Erase the contents filled in there and press
the "auto generate release notes" button. Manually remove any entries created by the automated
localization tools which will start with `* LEGO: Pull request from juno/`.
7. Publish that draft release as "pre-release".
8. Smoke test the 'one liner' installer: (Where 2022-03-30 is replaced with the right release name)
9. Publish that draft release as "pre-release".
10. Smoke test the 'one liner' installer: (Where 2022-06-15 is replaced with the right release name)
* Powershell:
`iex (iwr https://github.com/microsoft/vcpkg-tool/releases/download/2022-03-30/vcpkg-init.ps1)`
`iex (iwr https://github.com/microsoft/vcpkg-tool/releases/download/2022-06-15/vcpkg-init.ps1)`
* Batch:
`curl -L -o vcpkg-init.cmd https://github.com/microsoft/vcpkg-tool/releases/download/2022-03-30/vcpkg-init.ps1 && .\vcpkg-init.cmd`
`curl -L -o vcpkg-init.cmd https://github.com/microsoft/vcpkg-tool/releases/download/2022-06-15/vcpkg-init.ps1 && .\vcpkg-init.cmd`
* Bash:
`. <(curl https://github.com/microsoft/vcpkg-tool/releases/download/2022-03-30/vcpkg-init.sh -L)`
9. In the vcpkg repo, draft a PR which updates `bootstrap-vcpkg.sh` and `boostrap-vcpkg.ps1`
`. <(curl https://github.com/microsoft/vcpkg-tool/releases/download/2022-06-15/vcpkg-init -L)`
11. In the vcpkg repo, draft a PR which updates `bootstrap-vcpkg.sh` and `boostrap-vcpkg.ps1`
with the new release date, and update SHAs as appropriate in the .sh script. (For example, see
https://github.com/microsoft/vcpkg/pull/23757)
10. Submit a new full tree rebuild by https://dev.azure.com/vcpkg/public/_build?definitionId=29
(microsoft.vcpkg.ci as of this writing) and queue a new build targeting branch
`refs/pull/ The PR number created in the previous step /head` (for example
`refs/pull/24131/head`
https://dev.azure.com/vcpkg/public/_build/results?buildId=70703&view=results)
11. (Probably the next day) Check over the failures and ensure any differences with the most recent
full rebuild using the previous tool version are understood.
12. Merge the tool update PR.
13. Change the github release in vcpkg-tool from "prerelease" to "release". (This automatically
updates the aka.ms links)

View File

@ -67,3 +67,12 @@ jobs:
inputs:
PathtoPublish: scripts/list_files
ArtifactName: 'file lists for x64-linux'
- task: PublishTestResults@2
displayName: 'Publish Test Results'
condition: ne(variables['XML_RESULTS_FILE'], '')
inputs:
testRunTitle: x64-linux
testResultsFormat: xUnit
testResultsFiles: $(XML_RESULTS_FILE)
platform: x64-linux
configuration: static

View File

@ -70,3 +70,12 @@ jobs:
inputs:
PathtoPublish: scripts/list_files
ArtifactName: 'file lists for x64-osx${{ variables.Postfix }}'
- task: PublishTestResults@2
displayName: 'Publish Test Results'
condition: ne(variables['XML_RESULTS_FILE'], '')
inputs:
testRunTitle: x64-osx
testResultsFormat: xUnit
testResultsFiles: $(XML_RESULTS_FILE)
platform: x64-osx
configuration: static

View File

@ -116,6 +116,7 @@ else {
}
$failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs'
$xunitFile = Join-Path $ArtifactStagingDirectory "$Triplet-results.xml"
if ($IsWindows)
{
@ -162,7 +163,7 @@ if (($BuildReason -eq 'PullRequest') -and -not $NoParentHashes)
# but changes must trigger at least some testing.
Copy-Item "scripts/buildsystems/vcpkg.cmake" -Destination "scripts/test_ports/cmake"
Copy-Item "scripts/buildsystems/vcpkg.cmake" -Destination "scripts/test_ports/cmake-user"
& "./vcpkg$executableExtension" ci "--triplet=$Triplet" --failure-logs=$failureLogs "--ci-baseline=$PSScriptRoot/../ci.baseline.txt" @commonArgs @cachingArgs @parentHashes @skipFailuresArg
& "./vcpkg$executableExtension" ci "--triplet=$Triplet" --failure-logs=$failureLogs --x-xunit=$xunitFile "--ci-baseline=$PSScriptRoot/../ci.baseline.txt" @commonArgs @cachingArgs @parentHashes @skipFailuresArg
$failureLogsEmpty = (-Not (Test-Path $failureLogs) -Or ((Get-ChildItem $failureLogs).count -eq 0))
Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$failureLogsEmpty"
@ -171,3 +172,5 @@ if ($LASTEXITCODE -ne 0)
{
throw "vcpkg ci failed"
}
Write-Host "##vso[task.setvariable variable=XML_RESULTS_FILE]$xunitFile"

View File

@ -96,3 +96,12 @@ jobs:
inputs:
PathtoPublish: scripts/list_files
ArtifactName: 'file lists for ${{ parameters.triplet }}'
- task: PublishTestResults@2
displayName: 'Publish Test Results'
condition: ne(variables['XML_RESULTS_FILE'], '')
inputs:
testRunTitle: ${{ parameters.triplet }}
testResultsFormat: xUnit
testResultsFiles: $(XML_RESULTS_FILE)
platform: ${{ parameters.triplet }}

View File

@ -45,7 +45,7 @@ while (!($vcpkgRootDir -eq "") -and !(Test-Path "$vcpkgRootDir\.vcpkg-root"))
Write-Verbose "Examining $vcpkgRootDir for .vcpkg-root - Found"
$versionDate = '2022-05-05'
$versionDate = '2022-06-15'
if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64' -or $env:PROCESSOR_IDENTIFIER -match "ARMv[8,9] \(64-bit\)") {
& "$scriptsDir/tls12-download.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg-arm64.exe" "$vcpkgRootDir\vcpkg.exe"
} else {

View File

@ -126,23 +126,23 @@ fi
# Choose the vcpkg binary to download
vcpkgDownloadTool="ON"
vcpkgToolReleaseTag="2022-05-05"
vcpkgToolReleaseTag="2022-06-15"
if [ "$UNAME" = "Darwin" ]; then
echo "Downloading vcpkg-macos..."
vcpkgToolReleaseSha="d1bc1de6185892b90641256ac509aac88b6c23d5f4875038d071b4518f33d852d7519346a78d79913748991203a9474632d59645c788b1fe56f74938327bb90f"
vcpkgToolReleaseSha="2062863a36ff4bce3b5cd85a69bf5963bb797daa8c26e192d370b6569475ae773941d6e36362d0eb8d8762332443db6414aeebadce4e209b4da6e6d9e2ba93b1"
vcpkgToolName="vcpkg-macos"
elif [ "$vcpkgUseMuslC" = "ON" ]; then
echo "Downloading vcpkg-muslc..."
vcpkgToolReleaseSha="d698b5c37438eb03846d3908a67a7b955242d4e73c069ac4668de3be5fee8c21bf7ff0d291f5b85c6415fae70ca8d3ff926a757eb5aeda8b5d112d24c6874133"
vcpkgToolReleaseSha="759ad177784d2a3e8445279006ee642899d21eaed11d76f6889c5d8d5607dca67d0ae94784f6c9cc1240bc1dafe38a302fb5ee36a8407416e10434da7dda4f47"
vcpkgToolName="vcpkg-muslc"
elif [ "$ARCH" = "x86_64" ]; then
echo "Downloading vcpkg-glibc..."
vcpkgToolReleaseSha="bd1c24f113acee53c458b204b2443bb3a2e129f0df7f2772c83876e97e7788e9151d0ab92248ed5ee7cecf1152569ccb1050f174e70a7a21d7da8a580c73c132"
vcpkgToolReleaseSha="ddf0814eaa751bef6d5aaa104610ef2c59cda8d304f40679cc4542a8c7dee885d5363dee74567111b0d0a4a9929252370941f690b199e5c60eee3bc3e7c5490a"
vcpkgToolName="vcpkg-glibc"
else
echo "Unable to determine a binary release of vcpkg; attempting to build from source."
vcpkgDownloadTool="OFF"
vcpkgToolReleaseSha="9968b2420c19ac88fd912aa0d3d230a4712d51c411a7f5023c4a5d96c5fcc963ce8fbb286594220b5dfc63e23bdbcf3439326b90262dd89ea5b63afa143ca699"
vcpkgToolReleaseSha="cb0ec26f8aab601588b4505f9eeb3076562e22f3f955ef7b21396cd7b2a93940ef89c3f945a5816db6f73d42724a00a69588819b0421d79a122bcd3d63f81b2e"
fi
# Do the download or build.
@ -195,7 +195,9 @@ if [ "$vcpkgDownloadTool" = "ON" ]; then
vcpkgDownloadFile "https://github.com/microsoft/vcpkg-tool/releases/download/$vcpkgToolReleaseTag/$vcpkgToolName" "$vcpkgRootDir/vcpkg" $vcpkgToolReleaseSha
else
if [ "x$CXX" = "x" ]; then
if which g++-11 >/dev/null 2>&1; then
if which g++-12 >/dev/null 2>&1; then
CXX=g++-12
elif which g++-11 >/dev/null 2>&1; then
CXX=g++-11
elif which g++-10 >/dev/null 2>&1; then
CXX=g++-10

View File

@ -1278,3 +1278,43 @@ angle:x64-windows-static-md=fail
angle:x64-uwp=fail
angle:arm64-windows=fail
angle:arm-uwp=fail
vcpkg-ci-boost:x64-linux=pass
vcpkg-ci-boost:x64-windows-static-md=pass
vcpkg-ci-boost:x64-windows-static=pass
vcpkg-ci-boost:x64-windows=pass
vcpkg-ci-boost:x86-windows=pass
vcpkg-ci-ffmpeg:arm-uwp=pass
vcpkg-ci-ffmpeg:arm64-windows=pass
vcpkg-ci-ffmpeg:x64-linux=pass
vcpkg-ci-ffmpeg:x64-uwp=pass
vcpkg-ci-ffmpeg:x64-windows-static-md=pass
vcpkg-ci-ffmpeg:x64-windows-static=pass
vcpkg-ci-ffmpeg:x64-windows=pass
vcpkg-ci-ffmpeg:x86-windows=pass
vcpkg-ci-llvm:x64-linux=pass
vcpkg-ci-llvm:x64-osx=pass
vcpkg-ci-llvm:x64-windows-static-md=pass
vcpkg-ci-llvm:x64-windows-static=pass
vcpkg-ci-llvm:x64-windows=pass
vcpkg-ci-llvm:x86-windows=pass
vcpkg-ci-opencv:arm-uwp=pass
vcpkg-ci-opencv:arm64-windows=pass
vcpkg-ci-opencv:x64-linux=pass
vcpkg-ci-opencv:x64-uwp=pass
vcpkg-ci-opencv:x64-windows-static-md=pass
vcpkg-ci-opencv:x64-windows-static=pass
vcpkg-ci-opencv:x64-windows=pass
vcpkg-ci-opencv:x86-windows=pass
vcpkg-ci-paraview:x64-linux=pass
vcpkg-ci-paraview:x64-osx=pass
vcpkg-ci-paraview:x64-windows-static-md=pass
vcpkg-ci-paraview:x64-windows-static=pass
vcpkg-ci-paraview:x64-windows=pass
vcpkg-ci-paraview:x86-windows=pass
vcpkg-ci-wxwidgets:arm64-windows=pass
vcpkg-ci-wxwidgets:x64-osx=pass
vcpkg-ci-wxwidgets:x64-windows-static-md=pass
vcpkg-ci-wxwidgets:x64-windows-static=pass
vcpkg-ci-wxwidgets:x64-windows=pass
vcpkg-ci-wxwidgets:x86-windows=pass