RT-Thread CI编译产物artifacts自动上传功能介绍

server/2025/4/2 5:49:49/

近期在RT-Thread开源项目中,我们引入了一项实用的功能改进——将每次CI(持续集成)编译生成的产物(artifacts)自动上传到GitHub,方便开发者和用户能够更便捷地获取和测试最新的编译结果。

参考链接:https://github.com/RT-Thread/rt-thread/actions/runs/14015695988

如下图所示:

在这里插入图片描述

下面将为大家详细介绍这一功能。

一、功能背景

在软件开发过程中,持续集成是确保代码质量和项目顺利推进的重要环节。每次代码提交后,CI系统会自动进行编译和测试,生成相应的产物,称为artifacts。然而,之前这些产物仅在CI系统内部保存,开发者若想获取最新编译结果进行测试验证,则无法验证。而且之前的commit,需要下载代码,重新编译测试。

有了目前这个功能之后,每一笔commit提交,都会有对应的产物生产,为后续回溯问题,提供了比较方便的基础。

二、功能实现

通过GitHub Actions,我们在RT-Thread项目的CI流程中加入了产物上传的步骤。具体来说,每次CI编译成功后,系统会自动将生成的可执行文件elf,hex,bin文件,并上传到对应的GitHub Actions运行记录中。这一过程无需人工干预,确保了编译产物的及时性和准确性。

三、功能优势

  1. 便捷获取最新编译结果:开发者无需再手动寻找或请求他人提供最新的编译产物,只需访问GitHub Actions的运行结果页面,即可快速下载所需的文件进行测试。

在这里插入图片描述

  1. 提高测试效率:团队成员可以更快速地对新提交的代码进行测试验证,减少了因等待编译产物而导致的时间浪费,加快了问题发现和解决的节奏。不需要每次都选择对应的meuconfig生成对应的产物,直接可以下载对应的产物,只要将配置放到yml中即可。

以L496ZG为例,下载之后,可以得到所有的可执行文件

在这里插入图片描述

  1. 方便后续测试和升级:方便测试,测试人员可以直接测试hex文件,即可完成测试。

四、PR的时候如何使用

每次PR的时候,会进行CI检查,检查完成之后,会在workflow中,
在这里插入图片描述

  1. 在相应的CI工作流运行记录中,拉到最下面,可以查看生成的产物列表。
    在这里插入图片描述

  2. 根据需要选择并下载对应的编译产物进行测试和验证。

这一功能的实现,是RT-Thread项目在开发流程优化上的又一进步,旨在为开发者提供更加高效、便捷的开发体验。我们期待这一功能能够帮助大家更好地参与到RT-Thread的开发和测试中,共同推动项目的持续发展。

如果你在使用过程中有任何疑问或建议,欢迎随时在项目的Issue区或社区论坛中与我们交流反馈。


http://www.ppmy.cn/server/179785.html

相关文章

春日焕新居:约克VRF中央空调,科技赋能,带你开启健康呼吸新时代

春回大地,万物复苏的季节里,无数家庭怀揣美好憧憬之心开启家居焕新装修。然而,当精心挑选的建材逐渐构筑起理想家的雏形,往往伴随着甲醛等有害气体的困扰,如同一道无形的屏障,阻挡我们对健康家居生活的追求。别担心,约克VRF中央空调凭借其卓越的产品性能和服务,为您打造一个健康…

HTTP 1.0和2.0 有什么区别?

HTTP 1.0和HTTP 2.0是互联网中用于数据传输的重要协议,两者在功能和性能上有显著差异。 以下是它们的主要区别: HTTP 1.0 的特点: 单一连接:每个请求需要独立连接,导致高延迟和资源浪费。文本传输:使用文…

【更新中】【React】基础版React + Redux实现教程,自定义redux库和react-redux库

本项目是一个在react中,使用 redux 管理状态的基础版实现教程,用简单的案例练习redux的使用,旨在帮助学习 redux 的状态管理机制,包括 store、action、reducer、dispatch 等核心概念。 项目地址:https://github.com/Yv…

批量给 PDF 页面添加超链接

让我们的 PDF 文档上传到互联网的时候,我们可能需要对其做一些处理,比如说我们希望别人在点击 PDF 文档页面的时候就跳转到指定的链接,那我们就需要给 PDF 文档的页面上添加链接。今天就给大家介绍一下如何同时对多个 PDF 文档的所有页面添加…

SpringMVC请求与响应深度解析:从核心原理到高级实践

一、SpringMVC架构与核心组件剖析 SpringMVC是基于Java的MVC设计模型实现的轻量级Web框架,其核心架构围绕前端控制器模式构建。以下是核心组件及其作用: DispatcherServlet 作为前端控制器,所有请求首先到达此处。它负责请求分发、协调组件协…

ORA-00600 [2662]

一、数据库启动报ORA-00600[2662] [oraclenode1 ora11g]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 22 14:37:00 2011Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to an idle instance.SQL> startup ORACLE instanc…

互联网+大数据构建的广义智能体

互联网和大数据的结合正在形成一种具有类似神经网络特性的广义智能系统,这种系统通过对用户行为的实时感知、数据处理及反馈推送,在某种程度上实现了对个体的“认知”与“干预”。 特定季节它可能精准推送缓解你身体不适的药物,甚至会进行社会…

服务器上部署springboot项目学习笔记

Java相关命令 运行jar包: 在linux中,进入到jar包所在目录后,直接tab补全名称即可 java -jar jar包名称查看jar 包是否在运行&#xff1a; ps -ef | grep java终止运行的jar包 : kill <PID> # <PID>是jar包的id根据jar包名称查看运行状态 ps aux | grep MyBlog…