Skip to content

Conversation

@lia-viam
Copy link
Collaborator

(Please consider the entire file in the PR review; it was already pushed to main to allow iterating in branches)

Introduces a new workflow for publishing binaries to the Viam Conan server. There is an additional flag for publishing the most onerous/slow deps, namely Boost and the Google dependencies.

Currently the build only focuses on one common use case for modules, namely

  • C++17
  • Static Viam C++ SDK
  • Release build

Further PRs should add other common configurations, such as RelWithDebInfo C++ SDK.

There is a lot of overlap between this newly created job and the Conan CI job. It remains to be seen if they could be combined, for example by adding more configurations to the build matrix, adding a workflow trigger on releases, etc.

Right now the workflow is manual only, although a release trigger would make a lot of sense. I am just thinking about how to manage automated release builds vs pushing updated versions of the slow deps to the server, which I imagine would happen much less often.

@lia-viam lia-viam requested a review from acmorrow October 21, 2025 21:05
@lia-viam lia-viam requested a review from a team as a code owner October 21, 2025 21:05
@lia-viam lia-viam requested review from njooma and stuqdog and removed request for a team October 21, 2025 21:05
Copy link
Member

@stuqdog stuqdog left a comment

Choose a reason for hiding this comment

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

looks reasonable to me! I don't have confidence personally that this is totally correct without testing, but I assume that 1) you've tested what can reasonably be tested before merge, and 2) if anything is wrong here, it's relatively harmless to just merge, run, and fix when we see the errors.

Comment on lines 110 to 111
c++ --version
ldd --version
Copy link
Member

Choose a reason for hiding this comment

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

(q) curious what this is doing, if anything?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

oops leftover debugging to make sure i was getting the arch/os i wanted...joys of github actions yaml 🤡

conan upload "viam-cpp-sdk/*" -r viamconan -c
- name: Upload additional deps
if: inputs.upload_deps && !(matrix.runner == 'buildjet-8vcpu-ubuntu-2204' && matrix.image == 'ubuntu:22.04')
Copy link
Member

Choose a reason for hiding this comment

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

(q) curious about the runner/image constraint here, what's the reason for it?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

that's the runner/image where we get 100% cache hits from the conan center repo, so there's no need for us to duplicate their binaries in our instance

@lia-viam lia-viam merged commit c3b6387 into main Oct 27, 2025
5 checks passed
@lia-viam lia-viam deleted the publish-debugging branch October 27, 2025 18:34
@acmorrow
Copy link
Member

This looks great and I'm really excited for us to start using it. Am I correct to assume that we can have many different built variants of the C++ SDK cached in the repository, and we just need to start expanding the matrix?

@lia-viam
Copy link
Collaborator Author

@acmorrow that's exactly right! hoping to make targeted expansions to the matrix (and hence the artifact cache) on an as-needed basis

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants