nuttx/tools
simbit18 34c4b15b4d tools/ci: Added CI system on Windows Native
This PR adds support for the CI system for native Windows as well. It allows you to build NuttX on GitHub and test it locally for Windows users.

With these CI tools with PowerShell scripts, it is possible to build NuttX for Windows Native using (for now only) Cmake + Ninja with the same logic as the CI system with Bash scripts.

This allows the msvc job to be used not only with the simulator (currently only with Visual Studio 17 2022), but also with other architectures using the same Windows runner to get more coverage and avoid future breakage.
As with the other jobs, we use artifacts to save the compilation result at the end of the workflow execution (previously for the simulator it was not done).

The proposed solution is based on the following additions and modified:

Modified Files
buildyml -> only CI Jobs MSVC

New Files in tools/
ci/cibuild.ps1 -> Added Powershell script for Run the CI Builds
ci/platforms/windows.ps1 -> Added Powershell script for installing toolchains and tools.
testlist/windows.dat -> Target (Add sim (msvc), risc-v arm)
tools/testbuild.ps1

We tested the NuttX build on GitHub and locally.

How we build on GitHub and test locally.

Locally
cd .\nuttx\tools\ci\

.\cibuild.ps1 -n -i -A -C -N .\testlist\windows.dat

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-03-19 19:59:44 +08:00
..
bcm2711 arch/bcm2711, boards/raspberry-pi-4b: Add preliminary support for the BCM2711 and Raspberry Pi 4B. 2024-12-17 16:43:17 +08:00
bl602
ci tools/ci: Added CI system on Windows Native 2025-03-19 19:59:44 +08:00
cxd56
esp32
esp32c3
esp32s2
esp32s3
espressif tools/Unix.mk: Add host_info target to print nxdiag output 2025-01-07 01:03:44 +08:00
imx9 arch/arm64/imx9: Support for imx9 edgelock enclave 2025-03-17 21:35:25 +02:00
licensing
lwl
mpfs
pic32
pynuttx nxgdb/irq: add irqinfo command 2025-02-18 11:16:17 -03:00
rp23xx
rp2040
simwifi
zds
.gitignore
b16.c
bdf-converter.c tools/bdf-converter: Fix loop termination condition. 2025-03-18 10:12:23 -03:00
btdecode.sh
build-globals.sh
callstack.py
cfgdefine.c nuttx/audio: add fake audio driver. 2024-12-20 11:47:08 -03:00
cfgdefine.h
cfgparser.c
cfgparser.h
checkpatch.sh tools/checkpatch: Use gmake on BSD, make otherwise. 2025-03-19 09:09:32 +01:00
checkrelease.sh
CMakeLists.txt
cmpconfig.c
cnvwindeps.c
Config.mk
configure.bat
configure.c
configure.sh
configure_completion.bash
convert-comments.c
copydir.bat
copydir.sh
coredump.py
csvparser.c
csvparser.h tools/mksyscall: fix 106: Unexpected end of line: "FAR char * co" 2025-03-08 12:39:24 +08:00
D.defs
define.bat
define.sh
detab.c
Directories.mk
discover.py
doreleasenotes.py
Export.mk tools: Export LLVM flags for kernel build 2025-01-26 20:22:35 +08:00
flash_writer.py
FlatLibs.mk
gcov.py Docu/gcov: Modify the description and fix the script error 2025-01-22 21:41:06 +08:00
gdbserver.py
gencromfs.c
host_info_dump.py tools/Unix.mk: Add host_info target to print nxdiag output 2025-01-07 01:03:44 +08:00
host_info_parse.py tools/Unix.mk: Add host_info target to print nxdiag output 2025-01-07 01:03:44 +08:00
ide_exporter.py
incdir.bat
incdir.c
incdir.sh
indent.sh
initialconfig.c
jlink-nuttx.c
kasan_global.py kasan/globals: fix compile error 2024-12-05 20:37:47 +08:00
kconfig.bat
kconfig2html.c
KernelLibs.mk
LibTargets.mk
link.bat
link.sh
lowhex.c
macar-qcs.sh tools/macar-qcs.sh: migrate license to ASF 2024-12-16 14:14:55 +08:00
Make.defs
Makefile.host
merge_config.py
mkallsyms.py
mkallsyms.sh
mkconfig.c
mkconfigvars.sh
mkctags.sh
mkdeps.c
mkexport.sh tools/mkexport.sh: stop refering kernel path 2025-01-26 20:28:35 +08:00
mkfsdata.pl
mkfsdata.py
mknulldeps.sh
mkromfsimg.sh
mksymtab.c
mksyscall.c
mkversion.c
mkwindeps.sh
netusb.sh
noteinfo.c
nxstyle.c tools/nxstyle: handle case statement 2025-02-21 16:26:41 -05:00
parsecallstack.py
parsememdump.py
parsetrace.py tools/parsetrace.py: fix typo lenght -> length 2024-12-17 20:48:07 +08:00
pre-commit
process_config.sh
ProtectedLibs.mk
refresh.sh tools/refresh.sh: Add log for progress 2025-01-15 03:31:53 +08:00
rmcr.c
Rust.defs tools/Rust.defs: Use 'gnu' target for Linux and 'darwin' for macOS 2025-01-28 16:43:37 +08:00
sethost.sh
showsize.sh
showstack.sh
simbridge.sh
simhostroute.sh
simlaunch.sh
size_report.py
stm32_pinmap_tool.py
Swift.defs
testbuild.ps1 tools/ci: Added CI system on Windows Native 2025-03-19 19:59:44 +08:00
testbuild.sh [CI] testbuild.sh: Msys2 fix toolchain change 2025-01-17 23:25:46 +08:00
toolchain.cmake.export
uncrustify.cfg
Unix.mk tools: Export ZIG/ZIGFLAGS in Export.mk instead 2025-01-26 20:22:26 +08:00
unlink.bat
unlink.sh
version.sh
Win.mk
xmlrpc_test.py
Zig.defs
zipme.sh