Product
February 20, 2024

Publish modules to multiple platforms with Cloud Build

Natalia Jacobowitz
Product Manager
On this page

Cloud Build lets you start on any one platform and ship to every platform.

The Viam Modular Registry enables module authors to extend Viam’s functionality by creating modules that anyone in the world can use on their machine, opening up a world of potential new customers. Now, with Viam’s Cloud Build, we make it even easier to publish a module to multiple platforms so that you can further expand the reach of your module. 

Previously, it was easy to build your module and publish it for the architecture you specifically worked on. For example, if you built your module on a Raspberry Pi, your module would work for Linux machines with arm64 architecture; however, it wouldn’t work by default for someone running Viam on their Mac. If you wanted to extend your module to work also on a Mac, you would have needed to find yourself a laptop running macOS to build the module there so that someone else would be able to use it on their Mac. On top of that, you would have had to do this every time you made an update to your module!

Now, with Viam Cloud Build, we let you indicate which architectures you want your module to build on, and we simply build it for you. No matter what language you wrote your module in – C++, Python, Golang, etc. – the new Viam Cloud build works for any of them. You simply need to add the list of architectures you want the module built for inside your meta.json, and then you can use Viam’s provided action template inside a new workflow with GitHub Actions. Then as part of your continuous integration flow, each time you update your module, Viam will build your module for the desired platforms too. 

At this moment, with Cloud Build you can build your module for the following architectures: linux/amd64, linux/arm64, and darwin/arm64. To see the full list of architectures, check out our docs here

Cloud Build is our recommended path for module authors adding CI to a new module.

The goal here was really to expand the reach and enable more people to use any module with less effort for the module creators. 

I have created a brief video outlining the steps I described in this post to publish a module to multiple platforms. 

If you’re ready to start building, follow our docs and follow the instructions for “CI with build-action”, or check out the README and the open source code behind this feature.

twitter iconfacebook iconlinkedin iconreddit icon

Find us at our next event

Jun 12, 2025
Jun 16, 2025
,

JS Nation

In Person
Amsterdam
WebRTC is most often associated with building video and text chat into browsers but this peer-to-peer technology can also be used to monitor and control machines from anywhere in the world! Join Nick Hehr to learn about industrial arms, DIY rovers, and dashboards of data in real time.
Register Now
Jun 23, 2025
Jun 25, 2025
,

Open Source Summit North America 2025

In Person
Denver, CO
Edge-based computer vision gives us real-time insights, but getting that data where it needs to go without high bandwidth, lag, or hardware strain is a big challenge. Learn how to build a fast, event-driven vision pipeline.
Learn More