linguini1 commented on PR #18500:
URL: https://github.com/apache/nuttx/pull/18500#issuecomment-4012992759

   > Possible solution (to be verified, of course) to test and not modify the 
existing process.
   > Currently, GitHub jobs use static .dat files contained in the ci/testlist 
directory for build with Make or CMake.
   > Would it be possible to create a folder outside the NuttX tree, for 
example workspace/citest, and then have a tool (select.py or other) that 
generates one or more .dat files (using the current logic) containing what we 
want to build and a .json file to pass to the dedicated job on GitHub?
   > The job will read the .json file with the names of the .dat files that we 
will pass to ./cibuild.sh as is currently the case.
   > 
   
   Yes! This was idea for integrating this tool. The `.dat` files do more than 
just select the builds from what I can see; they also mark which configs can 
use CMake and possibly modify the toolchain? (one of them I saw a toolchain 
Kconfig variable name in there). That would have to be accounted for.
   
   Questions:
   
   > Will this system on GitHub only work for Linux (Docker)?
   
   I don't think so. The `select.py` script is platform agnostic, so we should 
be able to run it on MacOS/Windows builds as well. However, I know we perform 
99% of the builds on Linux and the other hosts get pre-set "samples" of a few 
boards to build as a sanity check. We should probably continue with that route 
until/unless we see large resource savings from this new tool.
   
   > How can we know if it is possible to build a board on macOS, MSVC, or 
MSYS2 ? Will these jobs be started in any case?
   
   This might be beyond my understanding of CI, as I had assumed any board can 
be built on any host (or at least, that's the goal of NuttX)? But maybe we can 
start with just adopting this on the Linux builds first since that's where most 
of the work takes place.
   
   > What should we do if there are changes to a board and other types, such as 
nuttx/drivers? What should the tool generate?
   
   Right now it considers this a complex PR, the same as the current CI. So 
that triggers a full build of all boards.
   
   > Of course, the questions don't end there! But I have to preserve my brain 
cells :)
   
   No kidding! I'm learning that our CI is very complex! And also very 
important, so it would be bad to break it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to