walnux/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 Documentation/bl602: Update some imformation; Add partition.toml in tool/bl602 2021-07-27 21:01:15 -07:00
ci tools/ci: Added CI system on Windows Native 2025-03-19 19:59:44 +08:00
cxd56 tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
esp32 tools/espressif: add esptool version check to Espressif build system 2024-10-15 20:42:57 +02:00
esp32c3 tools/espressif: add esptool version check to Espressif build system 2024-10-15 20:42:57 +02:00
esp32s2 tools/espressif: add esptool version check to Espressif build system 2024-10-15 20:42:57 +02:00
esp32s3 tools/esp32s3/Config.mk: fix "printf:`\': invalid format character" 2024-10-22 08:54:15 +08:00
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 tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
lwl tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mpfs tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
pic32 tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
pynuttx nxgdb/irq: add irqinfo command 2025-02-18 11:16:17 -03:00
rp23xx follow upstream change & fix minor things 2024-11-20 16:32:05 -03:00
rp2040 tools/rp2040: Building picotool if necessary 2024-11-11 10:38:58 +08:00
simwifi tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
zds tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
.gitignore build: add initial cmake build system 2023-07-08 13:50:48 +08:00
b16.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
bdf-converter.c tools/bdf-converter: Fix loop termination condition. 2025-03-18 10:12:23 -03:00
btdecode.sh tools/btdecode.sh: add optional elf file parameter 2024-09-30 08:44:18 +08:00
build-globals.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
callstack.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
cfgdefine.c nuttx/audio: add fake audio driver. 2024-12-20 11:47:08 -03:00
cfgdefine.h tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
cfgparser.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
cfgparser.h tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
checkpatch.sh tools/checkpatch: Use gmake on BSD, make otherwise. 2025-03-19 09:09:32 +01:00
checkrelease.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
CMakeLists.txt cmake:add cmake host tool mkdeps incdir 2024-10-31 17:55:13 +08:00
cmpconfig.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
cnvwindeps.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Config.mk gcov: Correct existing gcov configuration 2024-11-15 01:05:16 +08:00
configure.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
configure.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
configure.sh tools/configure.sh: add relative path 2024-10-12 14:27:58 +08:00
configure_completion.bash tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
convert-comments.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
copydir.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
copydir.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
coredump.py coredump.py:bug fix python file not have rename 2024-10-30 12:29:22 +08:00
csvparser.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
csvparser.h tools/mksyscall: fix 106: Unexpected end of line: "FAR char * co" 2025-03-08 12:39:24 +08:00
D.defs debug symbol level: Use config instead 2024-12-04 22:36:45 +08:00
define.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
define.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
detab.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Directories.mk libbuitin/compiler_rt: Supports separate builtin rt.builtins or rt.profile 2024-11-12 16:12:53 +08:00
discover.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
doreleasenotes.py tools/doreleasenotes 2024-09-25 01:38:04 +08:00
Export.mk tools: Export LLVM flags for kernel build 2025-01-26 20:22:35 +08:00
flash_writer.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
FlatLibs.mk libbuitin/compiler_rt: Supports separate builtin rt.builtins or rt.profile 2024-11-12 16:12:53 +08:00
gcov.py Docu/gcov: Modify the description and fix the script error 2025-01-22 21:41:06 +08:00
gdbserver.py get g_tcbinfo just use elf memory 2024-11-14 13:30:34 +08:00
gencromfs.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
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 tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
incdir.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
incdir.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
incdir.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
indent.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
initialconfig.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
jlink-nuttx.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
kasan_global.py kasan/globals: fix compile error 2024-12-05 20:37:47 +08:00
kconfig.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
kconfig2html.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
KernelLibs.mk libbuitin/compiler_rt: Supports separate builtin rt.builtins or rt.profile 2024-11-12 16:12:53 +08:00
LibTargets.mk clang:libclang_rt.builtins-xxx.a supports builtin 2024-10-28 16:38:45 +08:00
link.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
link.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
lowhex.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
macar-qcs.sh tools/macar-qcs.sh: migrate license to ASF 2024-12-16 14:14:55 +08:00
Make.defs tools: Rename apps-or-nuttx-Make.defs to Make.defs 2024-10-17 07:55:02 +08:00
Makefile.host tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
merge_config.py install kconfiglib using apt repo 2024-12-02 13:43:29 +08:00
mkallsyms.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkallsyms.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkconfig.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkconfigvars.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkctags.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkdeps.c tools/mkdeps: increase MAX_BUFFER from 16384 to 65536 2024-10-31 08:55:07 +08:00
mkexport.sh tools/mkexport.sh: stop refering kernel path 2025-01-26 20:28:35 +08:00
mkfsdata.pl tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkfsdata.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mknulldeps.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkromfsimg.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mksymtab.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mksyscall.c tools/syscall: Resolve compile time warning on address validation. 2023-06-28 08:47:07 +08:00
mkversion.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
mkwindeps.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
netusb.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
noteinfo.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
nxstyle.c tools/nxstyle: handle case statement 2025-02-21 16:26:41 -05:00
parsecallstack.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
parsememdump.py mm: dump node overheadp during memdump 2024-11-25 00:42:34 +08:00
parsetrace.py tools/parsetrace.py: fix typo lenght -> length 2024-12-17 20:48:07 +08:00
pre-commit tools: add git pre-commit hook based on checkpatch.sh 2023-05-03 14:42:34 +02:00
process_config.sh macos : fix “sed: -I or -i may not be used with stdin” 2024-11-04 22:40:29 +08:00
ProtectedLibs.mk libbuitin/compiler_rt: Supports separate builtin rt.builtins or rt.profile 2024-11-12 16:12:53 +08:00
refresh.sh tools/refresh.sh: Add log for progress 2025-01-15 03:31:53 +08:00
rmcr.c tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Rust.defs tools/Rust.defs: Use 'gnu' target for Linux and 'darwin' for macOS 2025-01-28 16:43:37 +08:00
sethost.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
showsize.sh tools/showsize.sh: support pass custom nuttx executable 2024-10-13 02:11:12 +08:00
showstack.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
simbridge.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
simhostroute.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
simlaunch.sh sim:support sim elf and dynamic libs package in post build 2024-11-06 01:56:44 +08:00
size_report.py fix: TreeNode has same attribute with NodeMixin 2023-10-09 17:51:01 -04:00
stm32_pinmap_tool.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Swift.defs debug symbol level: Use config instead 2024-12-04 22:36:45 +08:00
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 Add basic support for locales in order to C++ streams to build and work for simple cases (POSIX / C locale). 2024-04-29 17:34:10 +08:00
uncrustify.cfg tools/uncrustify: disable leading space removal for block comment 2024-04-16 19:10:08 +08:00
Unix.mk tools: Export ZIG/ZIGFLAGS in Export.mk instead 2025-01-26 20:22:26 +08:00
unlink.bat tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
unlink.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
version.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Win.mk tools/Unix.mk:make incdir precedence over other targets 2024-10-30 22:14:40 +08:00
xmlrpc_test.py tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
Zig.defs tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
zipme.sh tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00