Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 14 commits into from
Apr 17, 2024

Conversation

ZZ-Cat
Copy link
Owner

@ZZ-Cat ZZ-Cat commented Apr 17, 2024

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.

…platformio.ini`

This is the start of re-factoring continuous integration
…rmio.ini`

This is the build environment for my Defect Detector
…it into `quality_control.yml`

The existing badges for Arduino and PlatformIO are broken. These are already deprecated and will soon be replaced.
@ZZ-Cat ZZ-Cat changed the title refactor(repository): :recy refactor(repository): ♻️ Aggregate existing CIs into one Quality Control CI Apr 17, 2024
@ZZ-Cat ZZ-Cat marked this pull request as draft April 17, 2024 06:40
@ZZ-Cat ZZ-Cat self-assigned this Apr 17, 2024
@ZZ-Cat ZZ-Cat added Arduino IDE ♾️ This is specific to the Arduino IDE PlatformIO 👽 This is specific to PlatformIO. CI/CD 🚧 Continuous Integration/Continuous Deployment ...in progress 🚧 Development on this is in progress labels Apr 17, 2024
This automation performs static code analysis on CRSF for Arduino and will fail on medium and high defects
@ZZ-Cat
Copy link
Owner Author

ZZ-Cat commented Apr 17, 2024

Ha! I got it to fail! =^/.^=
Yes. Task failed successfully.
7e50bd8 👈 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 ZZ-Cat changed the title refactor(repository): ♻️ Aggregate existing CIs into one Quality Control CI refactor(CI): 👷 Replace existing CIs with one Quality Control CI Apr 17, 2024
…y checks

These will be re-enabled in the _last_ commit _before_ #115 is merged
Something isn't right with this. =/)/.-=
…r to `build_on_compatible_targets`

Let's see if it still wants to obliterate the other two jobs. =-/.-=
@ZZ-Cat
Copy link
Owner Author

ZZ-Cat commented Apr 17, 2024

Awesome-sauce! =^/,..,^=
Looks like it was a name conflict in 👇 here...


...that caused my previous Quality Control checks to simply not show up, let alone execute.

Well, it has since been fixed in 👇 here.

build_on_compatible_targets:

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
Copy link
Owner Author

ZZ-Cat commented Apr 17, 2024

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.

…etector

It's better (in terms of quality-of-life) to have the build check operate in a job all of its own, rather than being integrated with the Defect Detector.
@ZZ-Cat ZZ-Cat mentioned this pull request Apr 17, 2024
29 tasks
@ZZ-Cat ZZ-Cat added this to the Version 1.1.0 milestone Apr 17, 2024
@ZZ-Cat ZZ-Cat changed the title refactor(CI): 👷 Replace existing CIs with one Quality Control CI refactor(CI): :recy: Replace existing CIs with one Quality Control CI Apr 17, 2024
@ZZ-Cat ZZ-Cat changed the title refactor(CI): :recy: Replace existing CIs with one Quality Control CI refactor(CI): ♻️ Replace existing CIs with one Quality Control CI Apr 17, 2024
This ensures PlatformIO builds _every_ possible target CRSF for Arduino is compatible with, and is treated as passing in `pio run` in CLI.
@ZZ-Cat
Copy link
Owner Author

ZZ-Cat commented Apr 17, 2024

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.

@ZZ-Cat ZZ-Cat marked this pull request as ready for review April 17, 2024 22:23
@ZZ-Cat ZZ-Cat removed the ...in progress 🚧 Development on this is in progress label Apr 17, 2024
@ZZ-Cat ZZ-Cat merged commit 6d45b99 into Main-Trunk Apr 17, 2024
3 checks passed
@ZZ-Cat ZZ-Cat deleted the fix-defects branch April 17, 2024 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Arduino IDE ♾️ This is specific to the Arduino IDE CI/CD 🚧 Continuous Integration/Continuous Deployment PlatformIO 👽 This is specific to PlatformIO.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant