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
更多回帖