dashpay / dash

Dash - Reinventing Cryptocurrency
https://www.dash.org
MIT License
1.49k stars 1.2k forks source link

feat: implement GitHub Actions based starter CI #6171

Closed PastaPastaPasta closed 2 months ago

PastaPastaPasta commented 2 months ago

Issue being fixed or feature implemented

We currently rely on GitLab for running CI, and while it has worked quite well, I am worried about having all of our eggs in one basket! As such, I've long wanted to explore implemeenting Github Actions based CI, but was too lazy! Well I finally spent some 60 commits trying to figure everything out, and this PR is the result of it.

As a result, we will now have two semi-redunant CI systems, the primary one on GitLab, and this one on Github Actions. Currently the GA based CI will only do one host, and does linting. Be aware this GA based CI does not actually run the tests, it does build depends, src and run linters on 1 host. In the future, we should expand it from simply arm32 builds to having feature parity to GitLab.

While it appears the GA default runners are a bit slower than what we have on GitLab, there's a big difference, the GA runners are free :D If we decide to make the GA based CI primary, we'll probably want to setup some custom runners to have improved build speeds. Even still, a heavily cached build doing all linters took around 5 minutes if I recall correctly. Without caches I think it took maybe an hour, so defenitely not bad.

What was done?

See the individual commits, they're pretty self explanatory

How Has This Been Tested?

Lots of CI runs on my prior branch :) CI should run on this PR, and we should see how long it'll take w/o cache :D

Breaking Changes

N/A - CI only

Checklist:

Go over all the following points, and put an x in all the boxes that apply.

UdjinM6 commented 2 months ago

Looks good but needs rebase to fix Check Merge Fast-Forward Only