Install framework from CLI

I am attempting to create a build server for build/check/test using the platformio commandline tool.
The base image will have a set version of pio, python etc.
The project has mutiple applications which can be built independently or together, so for testing I need a base image used for all the independent runs.
I am unable to install the Zephyr framework (with version number) without building an actual application. How can I add a framework to my container, without triggering a build?

To my knowledge that’s not possible with PIO commands (@ivankravets correct me if wrong). I was corrrected.

pio platform install --with-package framework-zephyr ststm32

(or even --with-all-packages)

Ignore the bad ways:

A manual way would be to gather the downlink links from the bintray for all packages (e.g., framework-zephyr at Service End for Bintray, JCenter, GoCenter, and ChartCenter | JFrog) and untaring the .tar.gz in the right ~/.platformio/packages folder. But that gets quickly error-prone and messy when you have two applications which use two different versions of e.g., Zephyr, because then the extracted folder name has to be changed to something like framework-zephyr@<version>.

A different way would be to build the target applications once and let them download the packages, then snapshot the ~/.platformio/packages folder and copy that to the container – if the platform packages never change, that’s valid.

1 Like

You can install any dev-platform that contains this package using --with-*** flags. See pio platform install — PlatformIO latest documentation