嵌入式技术论坛
直播中

杨海清

7年用户 1753经验值
私信 关注
[经验]

介绍一个RT-Thread进行持续集成的容器化Linux环境

RT-Thread Linux CI Environment

一个用于嵌入式实时操作系统 RT-Thread 进行持续集成的容器化环境。

使用步骤:

拉取并启动镜像 maikebing/rt-thread_linux_env

代码克隆至已经启动的容器中。

代码目录 pkgs --update

可以使用 cppcheck --enable=all --std=c99 applications/ 检查代码

直接 scons , 比如scons --target=mdk5

成果物打包 如果使用mdk5 则文件名 一般为rtthread.bin , 根据你实际情况 在相关的 ci 中设置就好。

现成的范本:

Azure Pipelines

在代码目录新建 azure-pipelines.yml , 拷贝下面的内容,保存即可。

container:

image: maikebing/rt-thread_linux_env:latest

options: --hostname container-test

steps:

  • script: if [ ! -d ~/.env ]; then ln /env ~/.env -s;fi

    displayName: "Init env"

  • script: pkgs --printenv;pkgs --list;pkgs --update

    displayName: "Checkout all packages"

    workingDirectory: $(Build.SourcesDirectory)

  • script: cppcheck --enable=all --std=c99 applications/

    displayName: "Static Code Analysis"

    workingDirectory: $(Build.SourcesDirectory)

  • script: scons --target=mdk5

    workingDirectory: $(Build.SourcesDirectory)

    displayName: "Build MDK5 Project"

  • task: PublishBuildArtifacts@1

    inputs:

    PathtoPublish: '$(Build.ArtifactStagingDirectory)'

    TargetPath: '$(Build.SourcesDirectory)\rtthread.bin'

    ArtifactName: 'rt-thread'

    publishLocation: 'Container'

    StoreAsTar: true

已知问题:

pkgs —update 执行失败但却没有导致脚本执行失败。

原作者:maikebing

更多回帖

发帖
×
20
完善资料,
赚取积分