modm-io / modm

modm: a C++23 library generator for AVR and ARM Cortex-M devices
https://modm.io
Mozilla Public License 2.0
747 stars 132 forks source link

[ci] Fixing the doc generation jobs #1076

Closed salkinium closed 9 months ago

salkinium commented 1 year ago

Fixes #1074 (hopefully).

salkinium commented 1 year ago

ok, so plain stupid container/runner update doesn't fix it, but seems to make it fail silently. That's… great.

salkinium commented 1 year ago

Still failing silently. Perhaps overriding the Python installation with the latest or previous version will fix it?

rleh commented 1 year ago

I'll take a (deeper) look later this week.

salkinium commented 1 year ago

You are running out of disk space. The runner will stop working when the machine runs out of disk space. Free space left: 96 MB

Oh, it has nothing to do with the code. We're simply out of disk space. The last job probably did better at symlinking to reduce duplication: https://github.com/modm-io/modm/actions/runs/6318898186

Ok, so we need to split the job up into multiple parts and upload them separately. I'm not going to do that for the 2023q3 release though, since the docs are resonably up-to-date (27. Sept).

salkinium commented 9 months ago

Ok, so I have implemented an "incremental compression" scheme, where each generated target inside develop/api/ is compressed into its own .tar.gz folder and then the uncompressed files are deleted. This should prevent us from running out of disk space. Unfortunately, this means that @rleh needs to adapt the hook on the hosting server to also unpack those files.

salkinium commented 9 months ago

Well… it worked! I successfully killed the docs website with my compressed targets! There's still some issue with the task return value, but it doesn't seem like we're running out of disk space anymore. Plus it's a little faster now.

salkinium commented 9 months ago

Ah, it failed only because of the lack of fibers on the RPi. ARM64 fibers are not implemented.

Generating documentation for raspberrypi...
Error generating documentation for device raspberrypi: Cannot resolve dependency ':processing:fiber' of Module(modm:driver:bmi088)!
In file '../../__w/modm/modm/src/modm/driver/inertial/bmi088.lb:22' in function 'prepare':
def prepare(module, options):
salkinium commented 9 months ago

Ok, cleaned up the code a little more and will merge once the CI passes (except for the RPi fiber issue).