autowarefoundation / autoware

Autoware - the world's leading open-source software project for autonomous driving
https://www.autoware.org/
Apache License 2.0
8.6k stars 2.89k forks source link

ci(build-main): improve storage cleaning and ci build pipeline #4191

Closed xmfcx closed 4 months ago

xmfcx commented 4 months ago

Description

Intro

I was looking for a solution to fix the out of storage issues in CI.

I've found out https://github.com/marketplace/actions/free-disk-space-ubuntu action.

Then realized we also had a custom free-disk-space action.

But it wasn't removing enough unused junk from the provided runner instance.

With this PR, we now utilize the established marketplace free-disk-space-ubuntu action.

Visible outcomes

See my post down below this page

Issue with the build-main* workflows

I first wanted this to be with as little change as possible.

So I just added it to the existing build-main workflow.

https://github.com/autowarefoundation/autoware/blob/0d594f70b2a5913c9f1f061b5454c516f6c2911b/.github/workflows/build-main.yaml#L15

But the free-disk-space didn't work because, as I linked in the line above, it runs it in a container.

Because of this, I had to modify the existing "docker-build-and-push-main" workflows to reuse them, just for building, not pushing.

This way, this PR hopefully resolves the issue and builds the Autoware everyday as expected.

Tests performed

Once these CIs pass, we can merge these.

Effects on system behavior

Not applicable.

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

After all checkboxes are checked, anyone who has write access can merge the PR.

xmfcx commented 4 months ago

Original github runner disk state:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        73G   54G   20G  74% /

Previous "free-disk-space" performance (using a custom script):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        73G   40G   33G  55% /

Current "free-disk-space" performance (utilizing https://github.com/jlumbroso/free-disk-space):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        73G   21G   52G  29% /

With this update, our workflows that utilize "free-disk-space" will have additional 19GB space, 57% increase from what we had before.


After the job with cuda:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        73G   57G   17G  78% /

Which means, this workflow uses (52-17=35GB of storage, aftermath to its completion)

xmfcx commented 4 months ago

https://github.com/autowarefoundation/autoware/actions/runs/7972817001/job/21765355022

Success!!

xmfcx commented 4 months ago

Once these CIs pass, we can merge this PR.