WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows}#8068
WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows}#8068kosak wants to merge 4 commits into
Conversation
No docs changes detected for b059114 |
|
Pull Request titles must follow the Conventional Commits specification. Details: |
There was a problem hiding this comment.
Pull request overview
Adds GitHub Actions workflows to build the Deephaven C++ client, the static/ticking Python clients, and the .NET (C#) client on Ubuntu and Windows runners, plus supporting vcpkg configuration and CMake install rules. The C++ build relies on a NuGet-backed vcpkg binary cache to avoid rebuilding dependencies each run.
Changes:
- New workflows:
clients-cpp-python.yml,clients-csharp.yml, and a reusabledhc-version.ymlthat extracts the DHC version fromgradle.properties. - New vcpkg custom triplets (
x64-linux-dynamic-release.cmake,x64-windows-release) and an updatedvcpkg-configuration.jsonbaseline that drops the artifact registry. CMakeLists.txtchange to install vcpkg-built.sofiles alongside the C++ client on Linux toolchain builds.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/clients-cpp-python.yml |
New C++/Python build workflow with vcpkg + NuGet binary caching for Linux and Windows. |
.github/workflows/clients-csharp.yml |
New .NET client build and NuGet packaging workflow on Ubuntu. |
.github/workflows/dhc-version.yml |
Reusable workflow that derives dhc_version via awk on gradle.properties. |
cpp-client/deephaven/CMakeLists.txt |
Adds install rule copying vcpkg shared libraries on non-Windows toolchain builds. |
cpp-client/deephaven/vcpkg-configuration.json |
Updates vcpkg baseline and removes the artifact registry entry. |
cpp-client/deephaven/custom-triplets/x64-linux-dynamic-release.cmake |
New Linux release-only dynamic-link triplet. |
cpp-client/deephaven/custom-triplets/x64-windows-release |
New Windows release-only triplet (missing .cmake extension). |
cpp-client/ARBITRARY_CHANGED_FILE_TO_TRIGGER_REBUILD.txt |
Debug/scratch file used to retrigger CI; should not be merged. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # These settings are inspired by [vcpkg repo]/triplets/x64-windows.cmake | ||
|
|
||
| # These settings are the same: | ||
| set(VCPKG_TARGET_ARCHITECTURE x64) | ||
| set(VCPKG_CRT_LINKAGE dynamic) | ||
| set(VCPKG_LIBRARY_LINKAGE dynamic) | ||
|
|
||
| # This setting is new because we want to build only the 'release' | ||
| # version of the packages, rather the both 'debug' and 'release' | ||
| set(VCPKG_BUILD_TYPE release) |
There was a problem hiding this comment.
We would like to use x64-windows-release, but we can't because (kosak thinks) the Google properties like grpc and protobuf aren't honoring it properly.
| include: | ||
| - os: ubuntu-24.04 | ||
| target_triplet: x64-linux-dynamic-release | ||
| - os: windows-2025-vs2026 |
There was a problem hiding this comment.
This is a transitionary runner label that github is offering while it transitions to making Visual Studio 2026 standard on all the windows-2025 runners.
| DHC_VERSION=$(awk -F= ' | ||
| /^[^#]/ { props[$1] = $2 } | ||
| END { | ||
| v = props["deephavenMajorVersion"] "." props["deephavenMinorVersion"] | ||
| if (props["deephavenBaseQualifier"] != "") v = v "-" props["deephavenBaseQualifier"] | ||
| print v | ||
| } | ||
| ' gradle.properties) |
There was a problem hiding this comment.
I don't care right now unless my reviewers do
08eb34d to
f9f4152
Compare
No description provided.