Commit graph

287 commits

Author SHA1 Message Date
simbit18
b749dfba23 ci/platforms: necessary changes for macos-15-intel and macos-14 Apple Silicon
macos-15-intel  and  macos-14 Apple Silicon
- bloaty()
   aligned with the latest version

macos-15-intel
 - avr_gcc_toolchain()
     Latest version not available for Intel,
     so it needs to be built from source, which takes over an hour.
     The latest version prebuilt for Intel is 9.4.0
     Added an workaround for installation.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-11-28 11:04:21 +08:00
trns1997
c705b278d1 cmake: Remove unused BUILD_OOTCPP guard from configuration.
Clean up the CMake configuration by removing the obsolete
`BUILD_OOTCPP` guard. This variable is no longer required
since out-of-tree build handling is now managed via the
enhanced `nuttx_add_subdirectory()` with EXCLUDE support.

* Simplifies CMake configuration command.
* Avoids redundant or unused build options.

Signed-off-by: trns1997 <trns1997@gmail.com>
2025-10-17 17:06:46 -03:00
simbit18
893cf19356 tools/ci/testlist: skip the build of <board>:cxxtest
Problems downloading the uClibc++-0.2.5.tar.bz2 package

cURL error 60: SSL certificate expired

net::ERR_CERT_DATE_INVALID
Subject: cxx.uclibc.org

Issuer: R10

Expires on: 27 set 2025

This blocks the jobs:

- arm-12
- sim-02

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-28 12:47:09 -04:00
trns1997
d7b2df6d85 ci/cxx: Add out-of-tree build CI test.
Introduce a new CI test to validate out-of-tree builds
and prevent regressions in the `make export` workflow.
Specifically, this change adds `test-oot-build.sh` that:
* Builds NuttX using a selected configuration.
* Runs `make export` to generate the export package.
* Copies the `nuttx-export` to the OOT build project.
* Verifies that compilation and linking succeed.

Signed-off-by: trns1997 <trns1997@gmail.com>
2025-09-27 21:36:22 +08:00
simbit18
206d031bd5 tools/ci: Added CMake build for Raspberry Pi Pico on Windows Native
ci/platforms/windows.ps1 added:

  - pre-built picotool

  - pico-sdk

testlist/windows.dat:

  - Added the entry CMake,raspberrypi-pico:nsh

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-24 12:05:56 -03:00
simbit18
4c3dbed5b5 arm/rp2040: CMake build for Raspberry Pi RP2040 implemented
- CMake added board Raspberry Pi Pico

- Added the entry:

     CMake,raspberrypi-pico:bmp280

   to the file arm-06.dat.

- Moved the search for the Python 3 interpreter to the
  root CMakefile to avoid unnecessary repetition.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-24 14:42:27 +08:00
simbit18
ac47c9d41a ci/docker: add Raspberry Pi picotool and fix GN build
- Add prebuilt Raspberry Pi picotool

- fix GN build with:
     git checkout 5d0a4153b0bcc86c5a23310d5b648a587be3c56d

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-19 09:32:54 +08:00
Niccolò Maggioni
0f005b7b8c tools/ci: Include fetching pico-sdk in the CI environment setup
The Raspberry Pi pico-sdk was not available in the CI build process,
so the test builds for the rp2040 and rp2350 uCs could not execute the
last packaging stage. The SDK is now fetched and included, both at
runtime and in the Docker image.

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-08-20 02:23:37 +08:00
zhanghongyu
e953bbd47c Dockerfile: fix matter build error
when the version of nodejs used during the installation of the dependency
library is too different from the version of nodejs actually used, we may
encounter version incompatibility issues, resulting in a runtime crash.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2025-08-19 14:05:54 +08:00
Jorge Guzman
433b7170fe ci: add zip package to Docker environment 2025-08-16 20:21:27 +08:00
Filipe Cavalcanti
7807109524 tools/ci: temporarily disable test of esp32-devkitc:nxlooper
Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-07-18 14:55:52 -03:00
wangmingrong1
359c65543c tools/ci: Compile mps3-an547/gcov with clang using cmake in ci
armv8m ci:
1. use makefile clang: /arm/mps/mps3-an547/configs/clang,CONFIG_ARM_TOOLCHAIN_CLANG
2. use cmake clang: CMAKE,mps3-an547:gcov

Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2025-07-18 22:37:36 +08:00
simbit18
be0057c928 ci/platforms/darwin_arm64.sh: bump Xtensa ESP32|S2|S3 toolchain
Bump Xtensa esp-14.2.0_20241119
2025-07-18 22:36:29 +08:00
simbit18
5b3c5ac667 ci/platforms/darwin.sh: bump Xtensa ESP32|S2|S3 toolchain
Bump Xtensa esp-14.2.0_20241119
2025-07-18 22:36:29 +08:00
simbit18
47c6ed0b23 ci/platforms/msys2.sh: bump Xtensa ESP32|S2|S3 toolchain
Bump Xtensa esp-14.2.0_20241119
2025-07-18 22:36:29 +08:00
simbit18
26c36f243a ci/platforms/ubuntu.sh: bump Xtensa ESP32|S2|S3 toolchain
Bump Xtensa esp-14.2.0_20241119
2025-07-18 22:36:29 +08:00
simbit18
983c832572 ci/platforms/linux.sh: bump Xtensa ESP32|S2|S3 toolchain
Bump Xtensa esp-14.2.0_20241119
2025-07-18 22:36:29 +08:00
simbit18
3ff603fc52 ci/platforms/windows.ps1: bump risc-v toolchain
Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
simbit18
4df40dcb66 ci/platforms/ubuntu.sh: bump risc-v toolchain
Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
simbit18
32474985ab ci/platforms/msys2.sh: bump risc-v toolchain
Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
simbit18
665d608e68 ci/platforms/linux.sh: bump risc-v toolchain
Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
simbit18
e66fbcf708 ci/platforms/darwin_arm64.sh: bump risc-v toolchain
Darwin arm64 Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
simbit18
0f6e385a37 ci/platforms/darwin.sh: bump risc-v toolchain
Bump xPack GNU RISC-V Embedded GCC v14.2.0-3
2025-07-16 01:16:36 +08:00
Serg Podtynnyi
0883d664c4 ci/docker: bump risc-v toolchain
Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
2025-06-28 17:54:52 +08:00
wangmingrong1
ecd6a1db1a ci/arm64: Enhance CI inspection
1. nsh_fiq: arm64 clang makefile
2. nsh_gicv2: arm64 clang cmake

Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2025-06-27 20:44:41 +08:00
Filipe Cavalcanti
1a5f051fbf ci: update ESP32 Xtensa compiler version
Updates ESP32, ESP32S2 and ESP32S3 compiler version to 14.2.0 of 20241119.

Signed-off-by: Filipe Cavalcanti <filipe.cavalcanti@espressif.com>
2025-06-27 20:41:43 +08:00
simbit18
889a26db1d tools/ci/testlist/arm-05.dat: removed missing entries
Removed from the arm-05.dat file the entries:

CMake,nrf52832-dk:buttons
CMake,nrf52832-dk:wdog

CMake,nrf52840-dk:adc
CMake,nrf52840-dk:buttons
CMake,nrf52840-dk:pwm
CMake,nrf52840-dk:qspi
CMake,nrf52840-dk:timer

present in the jumbo configuration

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-05-23 09:29:43 +02:00
Lars Kruse
3ce85ca54e style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
Alan Carvalho de Assis
7b3aad198e ci/testlist: Don't build breadxavr board 2025-05-08 15:58:18 +08:00
simbit18
4245db2c47 tools/ci/testlist/sim-01.dat: skip build sim:can for macOS
macOS can compilation is not currently supported

[SocketCAN - Controller Area Network](https://www.kernel.org/doc/html/latest/networking/can.html)
 [Linux-CAN / SocketCAN ](https://github.com/linux-can/can-utils)

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-05-08 02:59:31 +02:00
zhangshoukui
82273b1cf5 tools/ci/testrun/script/test_framework/test_cmocka: skip Skip failed cases
[BUG] CI Test sim:citest fails intermittently for Linux sim-01 nuttx#16088
https://gist.github.com/lupyuen/849562eaf87b93411098c96ada4d43c5

nsh> cmocka --skip test_case_posix_timer|test_case_oneshot|write_default|read_default|burst_test|gpiotest01|test_playback.*|test_interaction.*|test_stress.*|test_capture.*
Cmocka Test Start.
Missing <source>
Usage: cmocka_driver_block -m <source>
Where:
  -m <source> Block device or mtd device mount location.
...
[ RUN      ] drivertest_pm
[  ERROR   ] --- 0 != 3
[   LINE   ] --- drivertest_pm.c:199: error: Failure!
[  FAILED  ] drivertest_pm
[==========] tests: 1 test(s) run.
[  PASSED  ] 0 test(s).
[  FAILED  ] tests: 1 test(s), listed below:
[  FAILED  ] drivertest_pm
...
[ RUN      ] drivertest_posix_timer
[  ERROR   ] --- 2019 is not within the range [1990, 2010]
[   LINE   ] --- drivertest_posix_timer.c:162: error: Failure!
[  FAILED  ] drivertest_posix_timer
[==========] tests: 1 test(s) run.
[  PASSED  ] 0 test(s).
[  FAILED  ] tests: 1 test(s), listed below:
[  FAILED  ] drivertest_posix_timer

Signed-off-by: zhangshoukui <zhangshoukui@xiaomi.com>
2025-03-28 11:19:59 +01:00
simbit18
d7681cc815 CI: Improved speed to build nuttx on MSYS2 job
After MSYS2 updated the package on GitHub
there was a slowdown in building NuttX in the MSYS2 job.

It went from an average of 6 minutes to 10 minutes !!!

The purpose of this PR is to speed up the build to decrease the usage of the Windows runner.

Modified Files
tools/ci/cibuild.sh

tools/sethost.sh

make olddefconfig -j 4 -> make olddefconfig
workaround for remove
  Cleaning...
  Configuring...
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-03-26 22:35:19 +08:00
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
Tiago Medicci Serrano
e4ca1a2de9 CI: Move esp32s3-devkit:python from xtensa-02.dat to xtensa-03.dat
This prevents CI from testing esp32s3-devkit:python automatically,
avoiding it to be overloaded. Manual testing can be triggered to
test xtensa-03.dat.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2025-03-08 06:49:23 -03:00
tengshuangshuang
1655537810 nuttx:fix tools-mm to heap
config-testing-heap is changed to conofig-testing-heap, so the citest tools need to change.

Signed-off-by: tengshuangshuang <tengshuangshuang@xiaomi.com>
2025-01-24 14:16:47 +08:00
YAMAMOTO Takashi
566e1c3a7d tools/ci/platforms/darwin.sh: bump bloaty version
hopefully this can fix build failure on macos-13. (see below)

i tested "cibuild.sh -i" with macOS 15.2, x86-64, Xcode 16.1.

```
 [470/495] Linking CXX executable bloaty
FAILED: bloaty
: && /Applications/Xcode_15.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -W -Wall -Wno-sign-compare -fdiagnostics-color=always -O2 -g1 -isysroot /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -mmacosx-version-min=13.7 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/bloaty.dir/src/main.cc.o -o bloaty  liblibbloaty.a  third_party/protobuf/cmake/libprotoc.a  third_party/re2/libre2.a  third_party/capstone/libcapstone.a  /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/lib/libz.tbd  third_party/abseil-cpp/absl/strings/libabsl_strings.a  third_party/protobuf/cmake/libprotobuf.a  /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/lib/libz.tbd  third_party/abseil-cpp/absl/strings/libabsl_strings_internal.a  third_party/abseil-cpp/absl/base/libabsl_base.a  third_party/abseil-cpp/absl/base/libabsl_spinlock_wait.a  third_party/abseil-cpp/absl/numeric/libabsl_int128.a  third_party/abseil-cpp/absl/base/libabsl_throw_delegate.a  third_party/abseil-cpp/absl/types/libabsl_bad_optional_access.a  third_party/abseil-cpp/absl/base/libabsl_raw_logging_internal.a  third_party/abseil-cpp/absl/base/libabsl_log_severity.a && :
ld: Undefined symbols:
  absl::debugging_internal::Demangle(char const*, char*, int), referenced from:
      bloaty::ItaniumDemangle(std::__1::basic_string_view<char, std::__1::char_traits<char>>, bloaty::DataSource) in liblibbloaty.a[2](bloaty.cc.o)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
2024-12-13 23:28:02 +08:00
YAMAMOTO Takashi
fce4f2b3ee tools/ci/platforms/darwin.sh: update bloaty pin
This seems to fix build errors on my environment.
(macOS 15.1.1, x86-64, xcode 16.1)

```
/Users/yamamoto/git/nuttx/tools/bloaty-src/third_party/abseil-cpp/absl/numeric/int128.cc:45:5: error: use of undeclared identifier 'ABSL_INTERNAL_ASSUME'
   45 |     ABSL_INTERNAL_ASSUME(hi != 0);
      |     ^
/Users/yamamoto/git/nuttx/tools/bloaty-src/third_party/abseil-cpp/absl/numeric/int128.cc:49:3: error: use of undeclared identifier 'ABSL_INTERNAL_ASSUME'
   49 |   ABSL_INTERNAL_ASSUME(low != 0);
      |   ^
/Users/yamamoto/git/nuttx/tools/bloaty-src/third_party/abseil-cpp/absl/numeric/int128.cc:141:9: error: redefinition of 'operator/'
  141 | uint128 operator/(uint128 lhs, uint128 rhs) {
      |         ^
/usr/local/Cellar/abseil/20240722.0/include/absl/numeric/int128.h:1040:16: note: previous definition is here
 1040 | inline uint128 operator/(uint128 lhs, uint128 rhs) {
      |                ^
/Users/yamamoto/git/nuttx/tools/bloaty-src/third_party/abseil-cpp/absl/numeric/int128.cc:152:9: error: redefinition of 'operator%'
  152 | uint128 operator%(uint128 lhs, uint128 rhs) {
      |         ^
```
2024-12-13 18:23:29 +08:00
YAMAMOTO Takashi
ac3aa0185c tools/ci/platforms/darwin.sh: Don't use PIP_USER if venv is activated
On my environment PIP_USER doesn't work well.
```
error: externally-managed-environment
```
(macOS 15.1.1, x86-64, xcode 16.1)

Also, I prefer to use virtualenv anyway.
2024-12-13 18:23:29 +08:00
Lup Yuen Lee
edbf2e21e7 CI: Move rv-virt:python from risc-v-06 to risc-v-07 2024-12-12 23:38:35 +08:00
simbit18
1dcada4917 [ci] macOS platforms: added LLVM toolchain for Arm
added LLVM toolchain for Arm on Apple Intel
release-17.0.1

added LLVM toolchain for Arm on Apple Silicon
release-19.1.1

ì
2024-12-11 14:09:45 -03:00
zhangyuan29
fb4a246fcc tools/ci: change sem_init_6_1 to support skip result
After SEM_VALUE_MAX change to INT_MAX, need to support
skip result.

Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
2024-12-10 22:00:42 +08:00
chao an
2961ecab9f sim/tflm: add tflite-micro demo into ci build
$ cmake -B build -DBOARD_CONFIG=sim/tflm -GNinja
$ cmake --build build
$ ./build/nuttx

NuttShell (NSH) NuttX-10.4.0
nsh> tflm -h

Utility to use tflite micro on nuttx.
[ -C       ] Compile tflite model into c++ codes.
[ -E       ] Do once evaluation (for profiling).
[ -i <str> ] Readable model file path.
[ -o <str> ] Writable c++ file path.
[ -p <str> ] Prefix of compiled code.
[ -a <int> ] Arena size (mempool).
[ -h       ] Print this message.

nsh> tflm -E -i /data/MobileNet-v3-Small.tflite -o /data/MbileNet-v3-Small.out
0 (id=0): size=602112, offset=0, first_used=0 last_used=1
1 (id=1): size=602112, offset=602112, first_used=1 last_used=2
2 (id=2): size=602112, offset=0, first_used=2 last_used=3
3 (id=3): size=607504, offset=802816, first_used=3 last_used=4
...
* (id=114): size=4096, offset=0, first_used=114 last_used=115
* (id=115): size=4000, offset=4096, first_used=115 last_used=115
 0: 00000000000000000000000000...................................................... (588k)
 1: 0000000000000000000000000011111111111111111111111111............................ (1176k)
 2: 2222222222222222222222222211111111111111111111111111............................ (1176k)
 3: 22222222222222222222222222........333333333333333333333333333................... (1182k)
...
"Event","Tag","Ticks"
0,SUB,0
1,MUL,0
2,PAD,0
3,CONV_2D,1
4,HARD_SWISH,0
5,PAD,0
...
110,MEAN,0
111,FULLY_CONNECTED,0
112,FULLY_CONNECTED,0
113,MUL,0
114,FULLY_CONNECTED,0
"Unique Tag","Total ticks across all events with that tag."
SUB, 0
MUL, 0
PAD, 0
CONV_2D, 3
...
"total number of ticks", 3
nxai done!

Signed-off-by: chao an <anchao@lixiang.com>
2024-11-29 18:34:10 +08:00
simbit18
00f831028f [ci] platforms: added toolchains
add toolchains for macOS on Apple Intel

xtensa-esp32s2
xtensa-esp32s3

add toolchains for macOS on Apple Silicon

xtensa-esp32s2
xtensa-esp32s3

add install for ubuntu.sh

xtensa-esp32s2
xtensa-esp32s3

add install for linux.sh

xtensa-esp32s2
xtensa-esp32s3
2024-11-26 10:14:42 +08:00
raiden00pl
7e42ca2538 boards/stm32: split nucleo-f4x1re into separate boards
Split nucleo-f4x1re into nucleo-f401re and nucleo-f411re.
These are separate boards and should be in separate directories as it's
done for all other nucleo boards in NuttX
2024-11-19 13:28:42 +01:00
xuxin19
d2a7e454bb build(qemu):add a qemu compilation configuration with application
enable various types of common applications and libraries, and enable CMake CI checks.
To avoid regression issues in the build system

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-11-14 22:50:49 +08:00
wangmingrong1
1d1ef52d1a arm/mps: Add a gcov functional testing configuration for mps-clang
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-13 05:33:00 +08:00
Lup Yuen Lee
f566c1a940 sim: Build quickjs with CMake 2024-11-12 12:10:42 +08:00
simbit18
2464b3207d [darwin] CI macos-14 : updated toolchains for macOS Apple Silicon
added shell script darwin_arm64.sh  for macOS Apple Silicon

updated toolchains for macOS on Apple Silicon
- arm64
- aarch64
- xpack-riscv
- xtensa-esp32
2024-11-12 00:08:38 +08:00
simbit18
5080ab7818 tools/ci/platforms/darwin.sh: Port NuttX CI Job to macOS-14
also  runs old CI Job macOS-13
2024-11-08 01:45:46 +08:00
simbit18
9bdc776b30 msys2: fix make[3]: warning: jobserver unavailable: using -j1.
fixed this error for msys2

====================================================================================
Configuration/Tool: nucleo-l152re/nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2024-11-05 06:12:26
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
2024-11-06 02:00:32 +08:00