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]
