Skip to content

[FEATURE] Bot that identifies Build Errors in the CI Logs #13827

Description

@lupyuen

Is your feature request related to a problem? Please describe.

Right now we spend a lot of time scanning the CI Build Logs to figure out why the build failed: Sample Log for arm-05

CMake Error at /github/workspace/sources/nuttx/build/_deps/mynewt-nimble-subbuild/mynewt-nimble-populate-prefix/src/mynewt-nimble-populate-stamp/download-mynewt-nimble-populate.cmake:170 (message):
  Each download failed!
    error: downloading 'https://github.com/apache/mynewt-nimble/archive/fb15c844542e812ceb49ab5ac8502dc93c167b90.tar.gz' failed

What if our PR Bot could scan the CI Build Logs, identify the error and post as a PR Comment?

Hello! Your CI Build Failed because of this error:
CMake Error at ... error: downloading ...

Describe the solution you'd like

How To Identify Errors

Our Bot will do this with diff, the Conventional Non-AI Way:

  • The above error is from the arm-05 Build Log. Our Bot will search the CI Build Logs, to find the Last Successful Merge Build of arm-05: Last Successful arm-05 Log
  • Our Bot runs a (special kind of) diff, to Compare the Failed Build with the Last Successful Build
  • It will discover the CMake Error, then post it as a PR Comment
  • How is our Bot triggered? It scans the CI Builds every minute, looking for Failed Builds

Optional: Explain the Error with LLM

This is totally optional: Our Bot could pass the error to an LLM and explain it...

LLM Prompt

What's failing in this NuttX Job for Continuous Integration? Please explain concisely

CMake Error at /github/workspace/sources/nuttx/build/_deps/mynewt-nimble-subbuild/mynewt-nimble-populate-prefix/src/mynewt-nimble-populate-stamp/download-mynewt-nimble-populate.cmake:170 (message):
  Each download failed!
    error: downloading 'https://github.com/apache/mynewt-nimble/archive/fb15c844542e812ceb49ab5ac8502dc93c167b90.tar.gz' failed
          status_code: 28
          status_string: "Timeout was reached"
          log:
          --- LOG BEGIN ---
            Trying 140.82.114.3:443...
  Connection timed out after 30001 milliseconds
  Closing connection 0
          --- LOG END ---
FAILED: mynewt-nimble-populate-prefix/src/mynewt-nimble-populate-stamp/mynewt-nimble-populate-download /github/workspace/sources/nuttx/build/_deps/mynewt-nimble-subbuild/mynewt-nimble-populate-prefix/src/mynewt-nimble-populate-stamp/mynewt-nimble-populate-download 
Response from Gemini Pro 1.5

The CI job is failing because it's timing out while trying to download the mynewt-nimble source code from GitHub. This is likely due to a temporary network issue or GitHub server being overloaded.

Concisely: The CI job can't download the required mynewt-nimble source code due to a connection timeout.

Describe alternatives you've considered

No response

Verification

  • I have verified before submitting the report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions