Skip to content
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
17f12a7
[invalid] Test uploads with azcopy
dg0yt May 11, 2025
35b7dff
Test vcpkg without azcopy capability
dg0yt May 12, 2025
347f4a6
Revert "Test vcpkg without azcopy capability"
dg0yt May 12, 2025
d038528
WIP
dg0yt May 12, 2025
c178e54
Use vcpkg fetch
dg0yt May 12, 2025
181c48b
Fixup
dg0yt May 13, 2025
928c0dd
Update `azcopy` to `10.29.1` (vcpkg-tools.json)
xavier2k6 Jun 11, 2025
fdabaf0
Merge remote-tracking branch 'origin/master' into azcopy
dg0yt Jun 11, 2025
7454d40
Merge branch 'vcpkg_azcopy' of https://github.com/xavier2k6/vcpkg int…
dg0yt Jun 11, 2025
b4c3d59
Merge remote-tracking branch 'origin/master' into azcopy
dg0yt Jul 2, 2025
9d7d55b
Use default tool
dg0yt Jul 2, 2025
129a745
Skip fetching azcopy
dg0yt Jul 2, 2025
a1e454c
Test
dg0yt Jul 3, 2025
49aa1ba
WIP
dg0yt Jul 21, 2025
6e9ff62
Use azcopy for binary caching
vicroms Aug 1, 2025
764e78e
Test with zlib
vicroms Aug 1, 2025
1c2eb5a
Set azcopy log and plan location
vicroms Aug 1, 2025
6707c0e
Use test port
vicroms Aug 2, 2025
26056ad
Trigger CI
vicroms Aug 2, 2025
14255c9
Trigger CI
vicroms Aug 4, 2025
e7e7d3e
Downgrade to 10.28.0
vicroms Aug 5, 2025
2e1709b
Use azcopy-sas for all platforms
vicroms Aug 5, 2025
7e80bb1
Merge branch 'azcopy-test' of https://github.com/vicroms/vcpkg into a…
dg0yt Aug 5, 2025
a5d6661
Revert vcpkg-ci-boost
dg0yt Aug 5, 2025
ebcd230
WIP
dg0yt Aug 5, 2025
83a98a9
Update scripts/azure-pipelines/test-modified-ports.ps1
vicroms Aug 5, 2025
0978f5f
Publish azcopy logs
vicroms Aug 5, 2025
281f565
Merge branch 'azcopy' of https://github.com/dg0yt/vcpkg into azcopy
vicroms Aug 5, 2025
b5c2319
Publish azcopy logs
vicroms Aug 6, 2025
936622d
Update scripts/azure-pipelines/azure-pipelines.yml
dg0yt Aug 26, 2025
f922931
Restore azcopy 10.29.1
dg0yt Aug 28, 2025
b1ab207
Update azcopy to 10.30.0
dg0yt Aug 28, 2025
3876dba
Trace
dg0yt Aug 28, 2025
eac5960
Merge branch 'microsoft:master' into azcopy
dg0yt Sep 9, 2025
d96939e
Limit azcopy buffer and concurrency
dg0yt Sep 9, 2025
09658d6
Apply suggestions from code review
dg0yt Sep 9, 2025
a6c358f
Merge branch 'microsoft:master' into azcopy
dg0yt Sep 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ parameters:
- name: vcpkgToolSha
displayName: 'Custom SHA of vcpkg-tool to use rather than bootstrap'
type: string
default: 'use default'
default: 'refs/pull/1679/merge'
- name: tripletPattern
displayName: 'Enable triplets which contain this substring'
type: string
Expand Down
5 changes: 3 additions & 2 deletions scripts/azure-pipelines/bootstrap-from-source.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/bin/sh
set -e

git clone https://github.com/microsoft/vcpkg-tool vcpkg-tool
git -C vcpkg-tool switch -d $1
git clone --depth 1 https://github.com/microsoft/vcpkg-tool vcpkg-tool
git -C vcpkg-tool fetch --depth 1 origin $1
git -C vcpkg-tool switch -d FETCH_HEAD
rm -rf build.x64.release
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=OFF -DVCPKG_BUILD_FUZZING=OFF -DVCPKG_BUILD_TLS12_DOWNLOADER=OFF -B build.x64.release -S vcpkg-tool
ninja -C build.x64.release
Expand Down
53 changes: 53 additions & 0 deletions scripts/azure-pipelines/test-modified-ports.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,59 @@ if ($Triplet -eq 'x64-windows-release') {
$tripletArg = "--triplet=$Triplet"
}

# Test uploads with azcopy
# Using portable binaries from https://github.com/Azure/azure-storage-azcopy/releases, linked on
# https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10?tabs=dnf#download-the-azcopy-portable-binary
$azcopy = $( & $vcpkgExe fetch azcopy $cachingArgs )
$lastLastExitCode = $LASTEXITCODE
if ($lastLastExitCode -ne 0)
{
Write-Error 'Cannot fetch azcopy.'
exit $lastLastExitCode
}
$azcopy
$env:PATH += [IO.Path]::PathSeparator + ( Split-Path -Parent ( $azcopy | Select-Object -Last 1 ) )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$env:AZCOPY_LOG_LOCATION = Join-Path $ArtifactStagingDirectory 'azcopy-logs'
$env:AZCOPY_JOB_PLAN_LOCATION = Join-Path $ArtifactStagingDirectory 'azcopy-plans'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder for upcoming integration.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

& azcopy --version
$lastLastExitCode = $LASTEXITCODE
if ($lastLastExitCode -ne 0)
{
Write-Error 'Cannot run azcopy.'
exit $lastLastExitCode
}
# Build large artifacts with unique ABI hashes
Get-Date | Out-File "scripts/manual-tests/azcopy/test-upload-artifacts/mutable"
# 3 GB < single max write (5 GB) < 6 GB, in files of 1.5 GB random data
$data = New-Object byte[] 1.5GB
(New-Object System.Random).NextBytes($data)
[System.IO.File]::WriteAllBytes("scripts/manual-tests/azcopy/core-1.dat", $data)
(New-Object System.Random).NextBytes($data)
[System.IO.File]::WriteAllBytes("scripts/manual-tests/azcopy/core-2.dat", $data)
(New-Object System.Random).NextBytes($data)
[System.IO.File]::WriteAllBytes("scripts/manual-tests/azcopy/large-1.dat", $data)
(New-Object System.Random).NextBytes($data)
[System.IO.File]::WriteAllBytes("scripts/manual-tests/azcopy/large-2.dat", $data)
Get-ChildItem -File scripts/manual-tests/azcopy
# Build and upload [core], [core,large]
$env:VCPKG_DEFAULT_BINARY_CACHE = Join-Path $WorkingRoot 'archives-azcopy'
New-Item -Type Directory -Path $env:VCPKG_DEFAULT_BINARY_CACHE
& $vcpkgExe x-test-features test-upload-artifacts --overlay-ports=scripts/manual-tests/azcopy $tripletArg @commonArgs @cachingArgs
$lastLastExitCode = $LASTEXITCODE
$env:VCPKG_DEFAULT_BINARY_CACHE = $null
if ($lastLastExitCode -eq 0)
{
# Try restore from cache
& $vcpkgExe remove test-upload-artifacts $tripletArg @commonArgs @cachingArgs
$xunitFile = Join-Path $ArtifactStagingDirectory "$Triplet-results.xml"
$xunitArg = "--x-xunit=$xunitFile"
& $vcpkgExe install --only-binarycaching "test-upload-artifacts[*]" --overlay-ports=scripts/manual-tests/azcopy $tripletArg $xunitArg @commonArgs @cachingArgs
$lastLastExitCode = $LASTEXITCODE
Write-Host "##vso[task.setvariable variable=XML_RESULTS_FILE]$xunitFile"
}
Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$true"
exit $lastLastExitCode

$failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs'
$failureLogsArg = "--failure-logs=$failureLogs"
$knownFailuresFromArgs = @()
Expand Down
5 changes: 3 additions & 2 deletions scripts/azure-pipelines/windows/bootstrap-from-source.cmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x86 -host_arch=x86
git clone https://github.com/microsoft/vcpkg-tool vcpkg-tool
git -C vcpkg-tool switch -d %1
git clone --depth 1 https://github.com/microsoft/vcpkg-tool vcpkg-tool
git -C vcpkg-tool fetch --depth 1 origin %1
git -C vcpkg-tool switch -d FETCH_HEAD
rmdir /s /q build.x86.release > nul 2> nul
cmake.exe -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=OFF -DVCPKG_BUILD_FUZZING=OFF -DVCPKG_BUILD_TLS12_DOWNLOADER=OFF -B build.x86.release -S vcpkg-tool
ninja.exe -C build.x86.release
Expand Down
1 change: 1 addition & 0 deletions scripts/manual-tests/azcopy/core-1.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
1 change: 1 addition & 0 deletions scripts/manual-tests/azcopy/core-2.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
1 change: 1 addition & 0 deletions scripts/manual-tests/azcopy/large-1.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
1 change: 1 addition & 0 deletions scripts/manual-tests/azcopy/large-2.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
1 change: 1 addition & 0 deletions scripts/manual-tests/azcopy/test-upload-artifacts/mutable
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)

file(INSTALL "${CURRENT_PORT_DIR}/mutable" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
foreach(name IN LISTS FEATURES)
file(GLOB blobs "${CURRENT_PORT_DIR}/../${name}-*.dat")
file(INSTALL ${blobs} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
endforeach()
15 changes: 15 additions & 0 deletions scripts/manual-tests/azcopy/test-upload-artifacts/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "test-upload-artifacts",
"version-string": "ci",
"description": [
"Tests uploading artifacts of varying size.",
"Write suitable amounts of random data to the datafiles before installing the port."
],
"homepage": "https://github.com/microsoft/vcpkg",
"license": "MIT",
"features": {
"large" : {
"description": "Install large.dat"
}
}
}
40 changes: 40 additions & 0 deletions scripts/vcpkg-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,46 @@
"url": "https://nodejs.org/dist/v16.15.1/node-v16.15.1-darwin-x64.tar.gz",
"sha512": "90d0612bbe5467b6cf385c91a68b8daad0057e3e0ccacea44567f5b95b14f7481cb79784185ab1463b4bd990e092ff0f9109576d1a1934b84e1c816582929611",
"archive": "node-v16.15.1-darwin-x64.tar.gz"
},
{
"name": "azcopy",
"os": "linux",
"arch": "amd64",
"version": "10.29.0",
"executable": "azcopy_linux_amd64_10.29.0/azcopy",
"url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.29.0/azcopy_linux_amd64_10.29.0.tar.gz",
"sha512": "31f9cb9b1c69e5e974142516ab91c73a0d15e793cafd86a545e4186d4fab0dd4e33600f3fdcc0ee01e3c893897843823fa9c9c2c3b3422388d988b2ecb2ad4fb",
"archive": "azcopy_linux_amd64_10.29.0.tar.gz"
},
{
"name": "azcopy",
"os": "osx",
"arch": "amd64",
"version": "10.29.0",
"executable": "azcopy_darwin_amd64_10.29.0/azcopy",
"url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.29.0/azcopy_darwin_amd64_10.29.0.zip",
"sha512": "00ff3f4ac5abf173bb0349941f15a2b97441b57d4f2c05933a6a22b65a10695713d3ed546fcf999b72f18728f6de7bd3aef1254f1f34be82d627219d16e490fe",
"archive": "azcopy_darwin_amd64_10.29.0.zip"
},
{
"name": "azcopy",
"os": "osx",
"arch": "arm64",
"version": "10.29.0",
"executable": "azcopy_darwin_arm64_10.29.0/azcopy",
"url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.29.0/azcopy_darwin_arm64_10.29.0.zip",
"sha512": "af3ea5b218e6eff07d8a1e2f04bd2f4d3ce18e8b5f4214135ae1810aa153c61593b5d55e619b4ea6c5afe78013fd9f41d80a161059323598d922b8aff0b219a0",
"archive": "azcopy_darwin_arm64_10.29.0.zip"
},
{
"name": "azcopy",
"os": "windows",
"arch": "amd64",
"version": "10.29.0",
"executable": "azcopy_windows_amd64_10.29.0/azcopy.exe",
"url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.29.0/azcopy_windows_amd64_10.29.0.zip",
"sha512": "e3e4962150eb59f3e4f57119db003f31ec3b0a01668d9d7d2ceb20c7ef3c7f1bb06f300ed213d715b316de6ff4512acd2130b6613cc0a9c2ed12b30400aa6462",
"archive": "azcopy_windows_amd64_10.29.0.zip"
}
]
}
Loading