Skip to content

Conversation

@vszakats
Copy link
Member

@vszakats vszakats commented Apr 17, 2025

To keep the basics tested. Building zlib and libssh2 takes <1.5 minutes.

So far it seems the "lost" vcpkg binary cache is not a vcpkg-tool
regression, but a GitHub server-side deprecation combined with lack of
replacement service or lack of vcpkg support for such service.

Ref: https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/
Ref: microsoft/vcpkg#45073

Follow-up to 15fb1dc #17069

To keep the basics tested. Building zlib takes about 1 minute.

So far it seems the "lost" vcpkg binary cache is not a vcpkg-tool
regression, but a GitHub server-side deprecation combined with lack of
replacement service or lack of support for such service.

Ref: https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/
Ref: microsoft/vcpkg#45073

Follow-up to 15fb1dc curl#17069
@vszakats vszakats added Windows Windows-specific CI Continuous Integration labels Apr 17, 2025
@vszakats vszakats changed the title GHA/windows: restore a simple vcpkg job (with zlib only) GHA/windows: restore a simple vcpkg job (with zlib) Apr 17, 2025
@vszakats vszakats changed the title GHA/windows: restore a simple vcpkg job (with zlib) GHA/windows: restore a simple vcpkg job Apr 17, 2025
@vszakats vszakats changed the title GHA/windows: restore a simple vcpkg job GHA/windows: restore a simple vcpkg job (zlib + libssh2) Apr 17, 2025
@vszakats vszakats closed this in e3912f0 Apr 17, 2025
@vszakats vszakats deleted the vcpkg-bare branch April 17, 2025 16:32
vszakats added a commit that referenced this pull request Apr 17, 2025
To keep testing these with MSVC:
- UWP !ssl
- arm64 build on the `windows-11-arm` runner
- examples
- OpenSSH-Windows (fix install on `windows-11-arm`)
- `windows-2025` runner
- cmake pre-fill checker

Surprise: UWP doesn't support SSPI, which is required by curl's Schannel
backend. Thus, no TLS support for this UWP build. It also suggests
the Schannel UWP mingw-w64 binaries may be broken and just a happy build
accident thanks to mingw-w64 headers being inaccurate.

Building zlib + libssh2 might actually take up to 2+ minutes with vcpkg,
instead of the previously estimated <1.5 minutes.

Follow-up to e3912f0 #17086
Follow-up to 15fb1dc #17069

Closes #17089
nbaws pushed a commit to nbaws/curl that referenced this pull request Apr 26, 2025
To keep the basics tested. Building zlib and libssh2 takes <1.5 minutes.

So far it seems the "lost" vcpkg binary cache is not a vcpkg-tool
regression, but a GitHub server-side deprecation combined with lack of
replacement service or lack of vcpkg support for such service.

Ref: https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/
Ref: microsoft/vcpkg#45073

Follow-up to 15fb1dc curl#17069

Closes curl#17086
nbaws pushed a commit to nbaws/curl that referenced this pull request Apr 26, 2025
To keep testing these with MSVC:
- UWP !ssl
- arm64 build on the `windows-11-arm` runner
- examples
- OpenSSH-Windows (fix install on `windows-11-arm`)
- `windows-2025` runner
- cmake pre-fill checker

Surprise: UWP doesn't support SSPI, which is required by curl's Schannel
backend. Thus, no TLS support for this UWP build. It also suggests
the Schannel UWP mingw-w64 binaries may be broken and just a happy build
accident thanks to mingw-w64 headers being inaccurate.

Building zlib + libssh2 might actually take up to 2+ minutes with vcpkg,
instead of the previously estimated <1.5 minutes.

Follow-up to e3912f0 curl#17086
Follow-up to 15fb1dc curl#17069

Closes curl#17089
nbaws pushed a commit to nbaws/curl that referenced this pull request Apr 26, 2025
To keep the basics tested. Building zlib and libssh2 takes <1.5 minutes.

So far it seems the "lost" vcpkg binary cache is not a vcpkg-tool
regression, but a GitHub server-side deprecation combined with lack of
replacement service or lack of vcpkg support for such service.

Ref: https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/
Ref: microsoft/vcpkg#45073

Follow-up to 15fb1dc curl#17069

Closes curl#17086
nbaws pushed a commit to nbaws/curl that referenced this pull request Apr 26, 2025
To keep testing these with MSVC:
- UWP !ssl
- arm64 build on the `windows-11-arm` runner
- examples
- OpenSSH-Windows (fix install on `windows-11-arm`)
- `windows-2025` runner
- cmake pre-fill checker

Surprise: UWP doesn't support SSPI, which is required by curl's Schannel
backend. Thus, no TLS support for this UWP build. It also suggests
the Schannel UWP mingw-w64 binaries may be broken and just a happy build
accident thanks to mingw-w64 headers being inaccurate.

Building zlib + libssh2 might actually take up to 2+ minutes with vcpkg,
instead of the previously estimated <1.5 minutes.

Follow-up to e3912f0 curl#17086
Follow-up to 15fb1dc curl#17069

Closes curl#17089
vszakats added a commit that referenced this pull request Apr 29, 2025
The unplanned dropping of the granular vcpkg binary cache indeed fell
into the cracks between Microsoft's various departments. The old method
is now official dropped, without replacement either on the vcpkg side or
the GitHub cache provider side.

Without a granular cache, vcpkg is impractical for builds larger than
a small dependency tree in CI, for performance reasons.

A granular cache is critical for CI use. Building dependencies is not
a goal of this CI, so a more desirable option would be pre-built binary
downloads. This would also allow keeping job timeouts low, which is
important for quick iteration in GHA when a flaky job requiring a manual
retry needs all other jobs to finish first. (GHA often disregards
step timeouts, which is another contributing factor here.)

Windows remains tested extensively with MSYS2, curl-for-win, and via
AppVeyor CI with MSVC + OpenSSL, and also in GHA via scaled back vcpkg
jobs that perform well without caching. What's lost is the recently
added Android OpenSSL build tests.

We may consider building/cachine important dependencies manually as in
GHA/linux-http3, and/or try integrating MSVC jobs with MSYS2 UCRT DLLs.

Ref: microsoft/vcpkg-tool#1662
Ref: microsoft/vcpkg#45073

Follow-up to cd0ec47 #17089
Follow-up to e3912f0 #17086
Follow-up to 15fb1dc #17069

Closes #17200
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration Windows Windows-specific

Development

Successfully merging this pull request may close these issues.

1 participant