diff --git a/docs/maintainers/internal/vcpkg_tool_release_process.md b/docs/maintainers/internal/vcpkg_tool_release_process.md index 5ed3ea2df7..fed09f577e 100644 --- a/docs/maintainers/internal/vcpkg_tool_release_process.md +++ b/docs/maintainers/internal/vcpkg_tool_release_process.md @@ -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) diff --git a/scripts/azure-pipelines/linux/azure-pipelines.yml b/scripts/azure-pipelines/linux/azure-pipelines.yml index ad50322393..3b0d41be46 100644 --- a/scripts/azure-pipelines/linux/azure-pipelines.yml +++ b/scripts/azure-pipelines/linux/azure-pipelines.yml @@ -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 diff --git a/scripts/azure-pipelines/osx/azure-pipelines.yml b/scripts/azure-pipelines/osx/azure-pipelines.yml index a735d66df4..4647b17c9e 100644 --- a/scripts/azure-pipelines/osx/azure-pipelines.yml +++ b/scripts/azure-pipelines/osx/azure-pipelines.yml @@ -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 diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index dd8e25fdca..55a05aef32 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -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" diff --git a/scripts/azure-pipelines/windows/azure-pipelines.yml b/scripts/azure-pipelines/windows/azure-pipelines.yml index a456464383..a06da2a2c6 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -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 }} + diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1 index 3c18f30f29..87bdbcd5bd 100644 --- a/scripts/bootstrap.ps1 +++ b/scripts/bootstrap.ps1 @@ -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 { diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 157c7585a7..2f9761df52 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -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 diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 0208f31203..2b5865219f 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -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