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 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 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.) review is responsible gating what has access to code signing.)
2. On your machine, in a prompt changed to the vcpkg-tool repo, 2. Check that the changes there are in fact the changes that we want in that release. (Be aware,
`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,
you are responsible for what is about to be signed with a Microsoft code signing certificate by you are responsible for what is about to be signed with a Microsoft code signing certificate by
proceeding) proceeding)
4. `git push https://devdiv.visualstudio.com/DevDiv/_git/vcpkg FETCH_HEAD:main` 3. Submit a new full tree rebuild by https://dev.azure.com/vcpkg/public/_build?definitionId=29
5. Monitor the resulting signed build at: (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 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 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.) 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 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 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/`. localization tools which will start with `* LEGO: Pull request from juno/`.
7. Publish that draft release as "pre-release". 9. 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) 10. Smoke test the 'one liner' installer: (Where 2022-06-15 is replaced with the right release name)
* Powershell: * 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: * 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: * Bash:
`. <(curl https://github.com/microsoft/vcpkg-tool/releases/download/2022-03-30/vcpkg-init.sh -L)` `. <(curl https://github.com/microsoft/vcpkg-tool/releases/download/2022-06-15/vcpkg-init -L)`
9. In the vcpkg repo, draft a PR which updates `bootstrap-vcpkg.sh` and `boostrap-vcpkg.ps1` 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 with the new release date, and update SHAs as appropriate in the .sh script. (For example, see
https://github.com/microsoft/vcpkg/pull/23757) 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. 12. Merge the tool update PR.
13. Change the github release in vcpkg-tool from "prerelease" to "release". (This automatically 13. Change the github release in vcpkg-tool from "prerelease" to "release". (This automatically
updates the aka.ms links) updates the aka.ms links)

View File

@ -67,3 +67,12 @@ jobs:
inputs: inputs:
PathtoPublish: scripts/list_files PathtoPublish: scripts/list_files
ArtifactName: 'file lists for x64-linux' 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: inputs:
PathtoPublish: scripts/list_files PathtoPublish: scripts/list_files
ArtifactName: 'file lists for x64-osx${{ variables.Postfix }}' 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' $failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs'
$xunitFile = Join-Path $ArtifactStagingDirectory "$Triplet-results.xml"
if ($IsWindows) if ($IsWindows)
{ {
@ -162,7 +163,7 @@ if (($BuildReason -eq 'PullRequest') -and -not $NoParentHashes)
# but changes must trigger at least some testing. # 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"
Copy-Item "scripts/buildsystems/vcpkg.cmake" -Destination "scripts/test_ports/cmake-user" 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)) $failureLogsEmpty = (-Not (Test-Path $failureLogs) -Or ((Get-ChildItem $failureLogs).count -eq 0))
Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$failureLogsEmpty" Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$failureLogsEmpty"
@ -171,3 +172,5 @@ if ($LASTEXITCODE -ne 0)
{ {
throw "vcpkg ci failed" throw "vcpkg ci failed"
} }
Write-Host "##vso[task.setvariable variable=XML_RESULTS_FILE]$xunitFile"

View File

@ -96,3 +96,12 @@ jobs:
inputs: inputs:
PathtoPublish: scripts/list_files PathtoPublish: scripts/list_files
ArtifactName: 'file lists for ${{ parameters.triplet }}' 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" 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\)") { 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" & "$scriptsDir/tls12-download.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg-arm64.exe" "$vcpkgRootDir\vcpkg.exe"
} else { } else {

View File

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

View File

@ -1278,3 +1278,43 @@ angle:x64-windows-static-md=fail
angle:x64-uwp=fail angle:x64-uwp=fail
angle:arm64-windows=fail angle:arm64-windows=fail
angle:arm-uwp=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