前言

搭建一套持续集成系统,覆盖代码格式规范、静态检查、代码覆盖率、ut环境、内存泄漏检测等,通过vscode集成开发。

搭建环境

  • 拉取基础镜像,启动container
# pull docker image and run.
$ docker pull yagerfgcs/rtms:v0.1
$ cd {work_dir} # cd to workdir
$ docker run --name rtms_dbg --privileged --net=host -v `pwd`:/tmp/rtms  -it yagerfgcs/rtms:v0.1 /bin/bash
  • 如果在本机mac上启动docker,需要在本机启动ssh server
    方法:打开mac设置->共享->远程管理,勾选“远程登录”
  • 通过vs-code增加SSH Targets
    方法:打开vs-code->remote explorer->Configure->选择“{$user}/.ssh/config”文件->添加ssh host->“Connect to Host in Current Window”

  • 通过vs-code连接到docker容器
    方法:将remote explorer切换到“Containers”,选择已启动的容器

使用vscode调试工程的配置方法

在Mac端远程调试Linux服务器的工程的方法
  • 首先使用ssh配置连接远程服务器,方法参考上面的“通过vs-code增加SSH Targets”
  • cmake编译的项目参考:
    • CMake: Debug and launch
    • 主要是.vscode下的launch.json的配置
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch",// Resolved by CMake Tools:"program": "${command:cmake.launchTargetPath}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [{// add the directory where our target was built to the PATHs// it gets resolved by CMake Tools:"name": "PATH","value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}"},{"name": "OTHER_VALUE","value": "Something something"}],"console": "externalTerminal","MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}
- 注意需配置kits
![在这里插入图片描述](https://img-blog.csdnimg.cn/958d5fe135604de28b03af9416230cc5.png)

代码规范:CLang-Format

  • 首先安装Clang-format插件,推荐链接
  • 配置远程container的设置项
    • 配置clang-format executable path,安装插件后,可以查找具体的clang-format可执行文件目录
$ find / -name *clang-format*
/root/.vscode-server/extensions/ms-vscode.cpptools-1.13.2-linux-x64/LLVM/bin/clang-format
/root/.vscode-server/extensions/xaver.clang-format-1.9.0


也可以直接修改settings.json文件

{"clang-format.executable": "/root/.vscode-server/extensions/ms-vscode.cpptools-1.13.2-linux-x64/LLVM/bin/clang-format","clang-format.fallbackStyle": "LLVM","C_Cpp.clang_format_path": "${workspace}/.clang-format",
}

ps:如果不想使用插件的clang-format,可以升级yum源再单独安装,方法参考:https://blog.csdn.net/shenmingxueIT/article/details/122125191

  • 将通用format文件放到vs的workspace目录下
    通用的.clang-format模板,可通过命令生成。
    clang-format -style=Google -dump-config > .clang-format

  • 具体静态扫描的方法:
    在具体文件,右键–>“Format Document”

静态代码检查:Cpplint

  • 背景
    使用google代码规范时可以使用cpplint脚本检查。

  • 方法:

    • 下载cpplint.py,地址:https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py放到工程目录下。
    • 安装python工具。
    • 配置CPPLINT.cfg文件。
  • 执行方式

# 检查具体文件
python cpplint.py ./test.cpp
# 检查整个目录
python cpplint.py ./*.cpp

静态代码扫描:CppCheck

  • 介绍:https://cppcheck.sourceforge.io/
  • 安装cppcheck:参考官网;
  • 配置cppcheck的bin目录到系统$PATH目录
[root@docker-desktop ~]# echo $PATH
/root/.vscode-server/bin/64bbfbf67ada9953918d72e1df2f4d8e537d340e/bin/remote-cli:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/root/bin:/root/bin:/tmp/cppcheck-2.9/bin
  • 在vscode中安装cppcheck相关插件,推荐 Cppcheck Plug-in
  • 配置clang.executable

    or直接在setting.json文件中增加
"clang.executable": "/opt/rh/llvm-toolset-7/root/usr/bin/clang"

UT单元测试:GTest

代码覆盖率

Valgrind内存泄漏检查

【cise】基于vscode+docker在mac本机搭建linux持续集成系统和开发环境相关推荐

  1. 将mac打造成和linux差不多的c语言开发环境,完全新手版

    注:本文适用于非常新非常新的新手,没有什么技术含量,就是一个回忆帖,可以减轻新手的负担 本人是新手,之前一直断断续续学了一点linux,后来换电脑之后发现ubuntu在我的新笔记本上面黑屏(应该是驱动 ...

  2. php docker 化,如何配置一个 Docker 化持续集成的 PHP 开发环境(四)

    目标:我们将为之前创建的 利用 PHPUnit 编写单元测试(本地)使用以下命令安装 PHPUnit 4.0: bash composer global require "phpunit/p ...

  3. 使用Docker实现丝般顺滑的持续集成

    作者简介:蒋运龙,有容云高级咨询顾问.十年来混迹于存储.三网融合.多屏互动.智能穿戴.第三方支付.Docker等行业:经历过测试.运维.实施各岗位全方位的摧残,依然活跃在技术的风头浪尖.  本文转载自 ...

  4. 基于K8s和docker的Jenkins 可伸缩持续集成系统

    概述 本文档主要介绍Jenkins的可伸缩部署方式,一种是基于Docker(或者docker-swarm 集群)的部署方式,另外一种是基于kubernetes的部署方式. 由于基于kubernetes ...

  5. (六)构建Docker私有仓库、Gitlab仓库和持续集成环境

    环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1: ...

  6. 用Docker搭建Laravel和Vue项目的开发环境

    在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速.轻量级.不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器 ...

  7. 基于Jenkins搭建iOS持续集成开发环境

    原创 2017-03-06 关键点 Jenkins安装及配置 Pipeline创建及配置 ruby的版本管理工具rbenv安装 fastlane安装 常见构建问题 相关工具及技术网站推荐 CI持续集成 ...

  8. 使用 Drone CI Docker 扩展为您的笔记本电脑带来持续集成

    持续集成 (CI) 是云原生应用程序开发的关键要素.随着容器构成云原生架构的基础,开发人员需要将他们的版本控制系统与 CI 工具集成. 有一种说法是持续集成需要基于云的基础架构.尽管 CI 对生产版本 ...

  9. (Docker实战) 第五篇:建立持续集成环境02

    标签: gblfy技术文档 文章目录 一. jenkins实战,持续集成实际项目 1.1. 安装maven插件 1.1.1. 找到Maven Integration这个插件 1.1.2. 确保jenk ...

最新文章

  1. .NET中获取电脑名、IP及用户名方法
  2. Android 图片放大缩小
  3. C#规范整理·泛型委托事件
  4. 词法分析器java_Java代码到底是如何编译成机器指令的。
  5. 在c语言中数据类型高低,C语言的数据类型
  6. 如何在 Mac 上管理用于锁定备忘录的密码?
  7. BZOJ 1230: [Usaco2008 Nov]lites 开关灯( 线段树 )
  8. 【语言学习】Java
  9. php在IIS上put,delete请求报404
  10. PropertyGrid—添加属性Tab
  11. 数据库修改服务器,服务器数据库修改
  12. Mybatis注解用法
  13. Some Thoughts
  14. js进阶之天猫弹性导航
  15. bsoj 1512 金明的预算方案(树型DP)
  16. 播放和保存视频,图像倒置纠正到本地文件夹(含ffmpeg ,pyav多线程读取多路网络摄像头)
  17. HTML的基本结构标签(html,head,title,body)
  18. python学什么书_python自学用什么书
  19. 超级好用的配色工具Palettte
  20. OmniPlayer Pro for Mac v1.4.12 支持无线投屏的视频播放器

热门文章

  1. FS4060A单节3.7V电流2.5A锂电池4.2V充电IC
  2. mathtype安装及报错解决
  3. 树莓派应用(一)--环境配置
  4. 基于模糊控制(fuzzy control)的PWM直流电机闭环调速系统
  5. 整理架构师都没搞懂的设计模式
  6. pos机 一直连接服务器,pos机刷卡一直在连接中是怎么回事
  7. centos7 修改selinux 开机导致 faild to load SELinux polic
  8. linux ssd iops测试,Linux系统硬盘的IOPS测试
  9. token放在那里 url_token在项目生成和使用
  10. numpy 构建一个全为零的数组 zeros()方法