Drone is a hosted continuous integration service. It enables you to conveniently set up projects to automatically build, test, and deploy as you make changes to your code to GitHub and BitBucket repositories.
Drone is configured by modifying settings in your project control panel.
Drone automatically detects when a commit has been made and pushed to a repository that is using Drone, and each time this happens, it will try to build the project using platformio ci command. This includes commits to all branches, not just to the master branch. Drone will also build and run pull requests. When that process has completed, it will notify a developer in the way it has been configured to do so — for example, by sending an email containing the build results (showing success or failure). It can be configured to build project on a range of different Development Platforms.
There are two possible ways of running PlatformIO in CI services:
Using platformio run command¶
This variant is default choice for native PlatformIO projects (Please fill all fields for your project in the Drone control panel):
pip install -U platformio platformio run /path/to/project/dir -e <ID_1> -e <ID_2> -e <ID_N>
Using platformio ci command¶
This variant is more convenient when project is written as a library (when there are examples or testing code) as it has additional options for specifying extra libraries and boards from command line interface:
PLATFORMIO_CI_SRC=path/to/source/file.c PLATFORMIO_CI_SRC=path/to/source/file.ino PLATFORMIO_CI_SRC=path/to/source/directory
pip install -U platformio platformio ci --board=<ID_1> --board=<ID_2> --board=<ID_N>
- Integration for USB_Host_Shield_2.0
pip install -U platformio wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip unzip /tmp/spi4teensy3.zip -d /tmp platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due