Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP
CI/CD_持续集成部署
github_CI_action
【1024】【ci】【github】【bsp】RT-THREAD中的attach文件使用(开启对应配置的CI检查)
发布于 2024-10-24 22:13:35 浏览:198
订阅该版
[tocm] # 介绍 在GitHub上,利用持续集成(CI)功能可以让GitHub自动的对代码进行编译检查 每当向RT-Thread主仓库提交代码时,GitHub都会自动启动CI流程,其中包括对板级支持包(BSP)的编译。 然而,默认情况下,CI流程只会对当前提交中通过menuconfig选中的配置进行编译 为了确保其他开发者克隆下来的代码尽可能精简,我们通常不会开启不必要的配置选项。 如果想要针对特定配置进行编译检查,不能直接开启相关选项,会导致代码合并之后还会影响到别人下载下来的代码 这时候就用到了attach文件,可以在CI过程中自动启用特定的配置选项,并进行编译检查,而无需修改主仓库的默认配置。这样既保证了代码的精简性,又实现了对特定配置的全面测试。 # 用途 1.未来相关代码变化后能及时发现有没有编译问题 假如要适配软件包,比如lvgl,当lvgl那边的仓库更新了代码后,这边的ci就能自动打开配置选项进行编译检查,有问题就能及时发现 2.特定的配置选项编译检查 # 如何使用attach 这里以nrf3540为例子,演示一下开启devices的attach 设置attach之前还需要把bsp的ci编译检查打开 打开 `.github\workflows\bsp_buildings.yml` 文件添加型号 ![image-20241024195110041.png](https://oss-club.rt-thread.org/uploads/20241024/499a50bcf925fa3d1f095581b5758158.png) 然后来到bsp目录下的 `.ci/attachconfig` 文件夹下 这里我要打开devices的i2c配置,为了便于分类,创建一个devices文件夹,然后创建一个i2c.attach 往里面写入配置的config,相当于进入menuconfig打开配置 (注:另外由于i2c默认开启后会打开i2c0,这会导致跟默认开启的uart0的代码冲突所以还需要将i2c0关闭) ```c CONFIG_BSP_USING_I2C=y CONFIG_BSP_USING_I2C0=n CONFIG_BSP_USING_I2C1=n CONFIG_BSP_USING_I2C2=y ``` 相关配置名可以在board\Kconfig文件下查看,同时在在menuconfig里对着选项按问号?也可以看到对应的选项名 这样就添加好了 ![image-20241024202850279.png](https://oss-club.rt-thread.org/uploads/20241024/e6cbfaf99e8896d6e421eb7459a8cb44.png) 接下来提交pr代码,等待ci编译 ![image-20241024203219189.png](https://oss-club.rt-thread.org/uploads/20241024/caacee749b83f429bd926a9e5346b8f7.png) 来到action界面查看log可以看到已经成功添加进去了 展开可以看到详细的编译过程 # 拓展: 假如想让本次attach编译时采用--strict编译则可以在attach里写上 ``` # scons: --strict ``` 想加入其他编译参数也是同理 # 原理 在 `tools/ci/bsp_buildings.py` 文件里可以看到一个build_bsp_attachconfig函数 ![image-20241024223249239.png](https://oss-club.rt-thread.org/uploads/20241024/76c3e2df6c1cd4d52bc78376683ead33.png) 这个函数大概实现分为6步 1.备份config文件 2.搜索 `.ci/attachconfig` 下的attach文件 3.然后将attach文件里的内容追加到`.config`文件中 4.check_scons_args检查有没有需要添加类似# scons: --strict的编译参数 5.build_bsp进行编译 6.还原config文件 # 引用: 相关ci知识: - [RT-Thread-【ci】【github】【bsp】RT-THREAD所有bsp scons编译情况检查RT-Thread问答社区 - RT-Thread](https://club.rt-thread.org/ask/article/8e019d0e64e1ab31.html) - [\[feature\]\[action\] Add the manual trigger for scons dist by supperthomas · Pull Request #7648 · RT-Thread/rt-thread · GitHub](https://github.com/RT-Thread/rt-thread/pull/7648) - [\[CI\] 讨论一下action.yml 中可以完善的点,欢迎吐槽 · Issue #7638 · RT-Thread/rt-thread · GitHub](https://github.com/RT-Thread/rt-thread/issues/7638#issuecomment-2397079962) - [\[ci\]\[bsp\_build\]attachconfig add scons args parsing by vacabun · Pull Request #8464 · RT-Thread/rt-thread · GitHub](https://github.com/RT-Thread/rt-thread/pull/8464) - [\[env\] add scons --strict by mysterywolf · Pull Request #6550 · RT-Thread/rt-thread · GitHub](https://github.com/RT-Thread/rt-thread/pull/6550) 有修改建议和问题欢迎在评论区提出
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
alight
该用户没有签名
文章
8
回答
0
被采纳
0
关注TA
发私信
相关文章
1
STM32 407 串口接收数据 系统卡死
2
RTT nrf24l01 设备驱动程序
3
stm32f10x串口只能发送数据,无法接收
4
第一次尝试移植rt-thread 到stm32F103系列问题
5
有人把stm32L07xx的bsp移到rtt上来了吗?求一个
6
rt-thread线程调度异常在stm32f103芯片上
7
RTT是否支持STM32F429
8
请问谁有 STM32F40x HAL + RT-THREAD 模板
9
rt-thread在stm32f411下的移植问题
10
针对STM32F7系列平台的MPU,Cache特性,需要注意哪些问题?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部