-
Notifications
You must be signed in to change notification settings - Fork 134
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
Replace CircleCI with Github Actions #588
Conversation
Maybe I have to apply 15f9b3f again... |
This is already looking very, very promising though… |
"stm32f4-compile-all: No space left on device" |
It's the SCons |
Ok, there's no built-in method, let me see if I can hack something together… |
I have a hacky solution I just need to clean it up a little… |
Super, thank you 👍🏽 I'm currently trying to setup a bunch of self-hosted runners to check if that would result in further build time reduction. |
There seems to be no difference between |
Meh, 1h20 is still a long running time. The free GH Actions tier has a 20 parallel jobs limit, so I'll check if we can split these jobs up into two 40mins jobs. |
Ok, the current job splitting yields something like 10mins for the examples, +30mins for the compile all, so about 40mins total. I'd be happy with that. It will however slow down if multiple PRs run at the same time due to the 20 jobs limit. |
Reminder: We should also test the website and api-docs jobs (by pushing to a develop-* branch). |
Pushed a |
Ahhh, but it does work on pull-requests. But this could be a solution: jobs:
build:
if: github.event.review.state == 'approved'` https://gh.neting.ccmunity/t/feature-request-trigger-action-on-pull-request-approved/18413/3 |
Oh, nice, let me try that! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This approval should trigger the HAL builds…
Oh, it worked!!! The only limitation is that we cannot approve our own PRs… so how do we trigger this on our own PRs? |
https://github.com/modm-io/modm/actions/runs/676361934:
|
I've added on-the-fly deduplication to the job, let's see if it remains <10GB or whatever it is. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's try this again…
Something with the key is still wrong? |
The api docs jobs now runs through, but the upload seems to not have worked correctly, at least the timestamp seems to be from the CircleCI job, not the GHA job. The compile-all jobs now don't run the devices from the quick-test again, so that should perhaps save a few mins per job. |
I've added both the approving PR trigger and the manual workflow trigger, so it should be fine. (Unless GHA doesn't support both at the same time, but the docs didn't deny it). |
Ok, @rleh I'm happy now with this splitting and config. 12mins for the fast CI, plus an additional 30mins after approval and manual trigger. I think we should clean this up, fix the docs jobs and then merge it, so that we have something faster now than the CircleCI mess. Then later we can switch to self hosting, perhaps optimize the splitting there again? |
fa2f7a5
to
c4fb4c6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Approve
SSH problem in build-upload-docs job ist fixed, see https://github.com/modm-io/modm/actions/runs/683762422.
I squashed the commits together; ready to merge from my side!
https://github.com/modm-io/modm/runs/2186185100:
Where does this error come from? |
Race condition from the de-duplicator. |
There was an issue with the small time between |
Co-authored-by: Niklas Hauser <niklas.hauser@rwth-aachen.de>
4033c03
to
e062d39
Compare
I fixed the race condition and sped up interlinking code so that it saved 20mins or so… docs.modm.io is up-to-date. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's see if all required jobs pass.
\o/ yay Thanks a lot! |
Is that a real issue? We could use a label (e.g. Using multiple labels we could even only run some tests depending on the PR scope. Would save more penguins, but could cause us problems... |
Maybe not, perhaps the HAL quick tests are enough. Let's see how it goes. But someone needs to approve my PRs now, otherwise I cannot run the whole CI… |
Let's see how much time Github Actions takes to run all tests...