ZZ-Cat / CRSFforArduino

An Arduino Library for communicating with ExpressLRS and TBS Crossfire receivers.
GNU Affero General Public License v3.0
143 stars 24 forks source link

refactor(CI): :recycle: Replace existing CIs with one Quality Control CI #115

Closed ZZ-Cat closed 5 months ago

ZZ-Cat commented 5 months ago

Overview

This has acquired a bit of "feature creep" from when I first created the branch. Hence why the Pull Request name is slightly different from the branch name. What I am doing here is, I am attempting to aggregate my existing continuous integrations into one.
Plus, discontinuing the existing Arduino CI, as this has been nothing but problematic for me for quite some time, now.

ZZ-Cat commented 5 months ago

Ha! I got it to fail! =^/.^= Yes. Task failed successfully. 7e50bd8ffd87ac80acefba6129fc8a1bb17e0a46 :point_left: That means my Defect Detector is working.

For now, I will leave the medium and high severities disabled until I am ready to merge this Pull Request.
There are a handful of things left to do from here.

ZZ-Cat commented 5 months ago

Awesome-sauce! =^/,..,^=
Looks like it was a name conflict in :point_down: here... https://github.com/ZZ-Cat/CRSFforArduino/blob/a33ae9842b297db2bdaf0eecb6544107f2e95b35/.github/workflows/quality_control.yml#L54 ...that caused my previous Quality Control checks to simply not show up, let alone execute.

Well, it has since been fixed in :point_down: here. https://github.com/ZZ-Cat/CRSFforArduino/blob/8ef505e5b5c9039d04f7dc7d00c0750009ab7e0f/.github/workflows/quality_control.yml#L54

However, at this stage, I might integrate the build check into my defect detector and have the execution happen afterwards. Because the whole point of the defect detector is to prevent CRSF for Arduino being built if the code-base has any known defects. So, I'll try that and see how I get on.

ZZ-Cat commented 5 months ago

Okay, cool. That little experiment worked.
However, it would be nicer to have an overview of what is failing before I start jumping into the why it is failing.
So, I have changed my mind. I will separate my build check from my Defect Detector and have it run under its own job like I did in 8ef505e.

ZZ-Cat commented 5 months ago

Okay, slight change-of-mind here:
I will not re-enable my higher severity flags in this Pull Request, because I want to merge this Pull Request into the Main-Trunk. All three checks perform admirably, and I am happy with that.

For the time being, the build is performed on a handful of commonly used targets instead of every possible target.
Later on, I could change this to build CRSF for Arduino only on tested targets, and indicate in the wiki which targets have been tested (and confirmed to be functional) and which targets aren't.

After this, I am creating another branch-and-pull-request combo where I enable the higher severity flags and actually fix the defects called out by my Defect Detector.