adafruit / Adafruit_Blinka

Add CircuitPython hardware API and libraries to MicroPython & CPython devices
https://learn.adafruit.com/circuitpython-on-raspberrypi-linux
MIT License
457 stars 349 forks source link

Improve Codebase Integrity Checks #626

Open makermelissa opened 2 years ago

makermelissa commented 2 years ago

So right now, the CircuitPython repo maintains integrity by compiling for each board and in each language to ensure that every PR will not break anything. For the Arduino libraries, it is usually compiled against a key set of boards. However, with Blinka which can run on so many platforms, while there are some checks in place, it seems like it's really more of a matter of time before something breaks for one platform or another. One way to reduce that may be to have additional GitHub actions in place.

This looks like it may be useful for testing a few different combinations: https://github.com/marketplace/actions/run-on-architecture. Not only are there different architectures, but also different distros such as Bullseye, Buster, and even Ubuntu. This will especially be useful if we can mock PlatformDetect (if needed) to force Blinka to think it is in certain hardware setups.

What actually led me to this is I was wondering if we could have an easy way to recompile https://github.com/adafruit/libgpiod_pulsein as needed for both armhf (arm7+) and aarch4 processors as needed in https://github.com/adafruit/Adafruit_Blinka/tree/main/src/adafruit_blinka/microcontroller/bcm283x/pulseio, which could certainly be part of the improvements.

tekktrik commented 2 years ago

This looks like a fun CI project, happy to help in any way I can!