Arduino-CI / arduino_ci

Unit testing and Continuous Integration (CI) for Arduino libraries, from a Ruby gem
Apache License 2.0
110 stars 34 forks source link

Platform.io Support #333

Open bshambaugh opened 1 year ago

bshambaugh commented 1 year ago

(Issue Summary / Feature Request)

I started playing around with your Blink sketch and I realized that it was not easily portable to platform.io . /home/Arduino, library.properties, and a specific folder structure were assumed. Is there an easy way to think about migration? I included a link to my Platform.io attempt.

Arduino or Unit Test Code, Illustrating the Problem

https://github.com/bshambaugh/ardunioCI-on-platformIO

bshambaugh commented 1 year ago

To be proper, the hook is here: https://docs.platformio.org/en/latest/advanced/unit-testing/frameworks/custom/index.html

bshambaugh commented 1 year ago

I just realized some other problems. 1) I am using an ESP32 (however it is Arduino compatible) , 2) I'm running websockets, but I am not sure you've implemented that yet, 3) I have an external cryptographic co-processor (https://github.com/sparkfun/SparkFun_ATECCX08a_Arduino_Library) but I don't think you've set up a mock for it.

For (3) I could try something like this: https://github.com/kmackay/micro-ecc to emulate behavior.

ianfixes commented 1 year ago

Hi Brent, thanks for this question.

If I'm understanding you correctly, you're asking how to use Platform.io to run arduino_ci unit tests. The simple answer is that Platform.io is an alternative CI system for Arduino -- arduino_ci unit tests are meant to be run locally with the arduino_ci.rb test runner, or in CI via the ArduinoCI GitHub Action.

Have you tried either of those options?