Spent a bunch of time building a CI framework targeting the LMIC , in response to Travis CI builds disabled by Travis OSS policy change
Here’s where I am today.
- We need to have a CI helper that can be used for a variety of LMIC-based projects. This is somewhat like what Adafruit did with
adafruit/ci-arduino. However, we need something that can iterate over supported BSPs, boards, regions, and radios.
- Thus there’s a new repo,
- We’re still using
- We use
arduino-clito do the builds (rather than the UI)
Here’s what the .yml file for the
arduino-lmic says to do.
Check out the repo
This puts the library at
Set up mcci-catena-ci
This grabs a copy of
Set up to build
mcci-catena-ci/setup.sh, which downloads and installs BSPs. For builds other than LMIC, it will have to download and install libraries.
Display structure of checkout
This just runs
tree to show what we have.
This step goes through all the examples in the library identified by the
MCCI_CI_LIBRARY and builds them.
- if the name of the sketch contains the string “
us915”, it’s assumed to require a US-like region, so other regions are skipped.
- if the sketch contains the string
COMPILE_REGRESSION_TEST, it’s assumed that it will fail to compile unless that symbol compile; it’s tested both ways for expected results.
Directory Structure pre-build
/home/runner/work/arduino-lmic/arduino-lmic ├── bin ├── libraries │ └── arduino-lmic │ ├── assets │ ├── ci │ ├── doc │ ├── examples │ ├── project_config │ └── src └── mcci-catena-ci
Builds run for stm32, samd, esp32, and avr. They fail for the following reasons:
- the Adafruit temperature demo needs a library
- the network time demo needs a library
- the compliance sketch is too big for AVR (can be fixed by fixing device at class A).
Code is checked in on branch issue647.
More to come…