modm-io / modm

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

CI docs all job is broken #1074

Closed salkinium closed 8 months ago

salkinium commented 1 year ago

Some issue with the temporary directory being janked underneath the last jobs. Perhaps there is a size/node limit per directory?

Generating documentation for stm32l486zgt7 ...
Executing: (cd stm32l486zgt7/modm/docs/ && doxypress doxypress.json)
Error 2 generating documentation for device stm32l486zgt7.
Generating documentation for stm32f030f4p6-demo ...
Executing: (cd stm32f030f4p6-demo/modm/docs/ && doxypress doxypress.json)
Error 2 generating documentation for device stm32f030f4p6-demo.
Generating documentation for stm32l432kcu6 ...
Executing: (cd stm32l432kcu6/modm/docs/ && doxypress doxypress.json)
Error 2 generating documentation for device stm32l432kcu6.
You need to provide the programmer via a custom OpenOCD config!

# Black Pill

STM32F103C8T6 "Black Pill" Minimum System Development Board

Cheap and bread-board-friendly board for STM32 F1 series.
Sold for less than 2 USD on well known Internet shops from China.

https://stm32-base.org/boards/STM32F103C8T6-Black-Pill.html

## Programming

Since the board doesn't have a programmer on-board, you need to use your
own and *specify* which one you're using in a custom `openocd.cfg` file:

Replace this with your custom programmer

source [find interface/stlink-v2.cfg]

If you use the clone CKS32F103C8T6 chip you need to overwrite this ID

set CPUTAPID 0x2ba01477

To select a specific programmer you can specify its serial number

hla_serial "\x53\x3f\x6f\x06\x50\x77\x50\x57\x12\x17\x14\x3f"

You can discover the serial via stlink --hla-serial or st-info --hla-serial.


Then include this file in your build options like so:

```xml
<library>
  <extends>modm:black-pill</extends>
  <options>
    <option name="modm:build:openocd.cfg">openocd.cfg</option>
  </options>
</library>

TinyUSB in modm does not currently use the FreeRTOS abstraction layer and is not thread-safe with FreeRTOS threads. TinyUSB in modm does not currently use the FreeRTOS abstraction layer and is not thread-safe with FreeRTOS threads. Generating documentation for black-pill-f103 ... Executing: (cd black-pill-f103/modm/docs/ && doxypress doxypress.json) Finished generating documentation for device black-pill-f103. Deduplicating files for stm32f103c8t6...

Moving black-pill-f103/modm/docs/html -> output/develop/api/black-pill-f103 Error generating documentation for device black-pill-f103: [Errno 2] No such file or directory: '/tmp/tmp4kvu_hht/black-pill-f103/modm/docs/html' -> '/tmp/tmp4kvu_hht/output/develop/api/black-pill-f103' TinyUSB in modm does not currently use the FreeRTOS abstraction layer and is not thread-safe with FreeRTOS threads. Generating documentation for stm32g0c1vet6 ... Executing: (cd stm32g0c1vet6/modm/docs/ && doxypress doxypress.json) Finished generating documentation for device stm32g0c1vet6. Deduplicating files for stm32g0c1vet6...

Moving stm32g0c1vet6/modm/docs/html -> output/develop/api/stm32g0c1vet6 Error generating documentation for device stm32g0c1vet6: [Errno 2] No such file or directory: '/tmp/tmp4kvu_hht/stm32g0c1vet6/modm/docs/html' -> '/tmp/tmp4kvu_hht/output/develop/api/stm32g0c1vet6'

modm: Recomputing device cache... Modm Path: /__w/modm/modm Temporary directory: /tmp/tmp4kvu_hht Starting to generate documentation... ... for 259 devices, estimated memory footprint is 15370 MB Traceback (most recent call last): File "tools/scripts/docs_modm_io_generator.py", line 151, in main results = pool.map(lambda d: subprocess.run(d, shell=True).returncode, list(set(devices))) File "/usr/lib/python3.8/multiprocessing/pool.py", line 364, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/usr/lib/python3.8/multiprocessing/pool.py", line 765, in get self.wait(timeout) File "/usr/lib/python3.8/multiprocessing/pool.py", line 762, in wait self._event.wait(timeout) File "/usr/lib/python3.8/threading.py", line 558, in wait signaled = self._cond.wait(timeout) File "/usr/lib/python3.8/threading.py", line 302, in wait waiter.acquire() KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "tools/scripts/docs_modm_io_generator.py", line 272, in exit(0 if main() else -1) File "tools/scripts/docs_modm_io_generator.py", line 170, in main return results.count(0) == len(results) File "/usr/lib/python3.8/tempfile.py", line 966, in exit self.cleanup() File "/usr/lib/python3.8/tempfile.py", line 970, in cleanup self._rmtree(self.name) File "/usr/lib/python3.8/tempfile.py", line 952, in _rmtree _rmtree(name, onerror=onerror) File "/usr/lib/python3.8/shutil.py", line 722, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/usr/lib/python3.8/shutil.py", line 720, in rmtree os.rmdir(path) OSError: [Errno 39] Directory not empty: '/tmp/tmp4kvu_hht' TinyUSB in modm does not currently use the FreeRTOS abstraction layer and is not thread-safe with FreeRTOS threads.