LGTM简介 LGTM提供了一个持续集成工具,主要检查代码的安全性、可维护性等等,官网在https://lgtm.com/ 可直接用github登录。关于LGTM的介绍可以看https://lgtm.com/help/lgtm/about-lgtm 主要还是可以
LGTM提供了一个持续集成工具,主要检查代码的安全性、可维护性等等,官网在https://lgtm.com/ 可直接用github登录。关于LGTM的介绍可以看https://lgtm.com/help/lgtm/about-lgtm
主要还是可以得到一个帅帅的code quality认证
Windows10 -- MinGW + CMake ,WSL2
准备登录LGTM,点击右上角的Project lists,复制自己仓库的地址,点击follow,看到下面出现仓库就说明follow成功了,会尝试默认配置进行build
如果比较幸运,默认配置Build成功了,那就不用看这一段了
根据官网教程(https://lgtm.com/help/lgtm/customizing-code-extraction )可以用临时或者项目中的lgtm.yml文件来自定义代码构建流程
点击build logs右上角的Test analysis configuration,可以试验一些设置
extraction:
cpp:
prepare:
packages:
#准备需要的包,这里我出于谨慎提了gcc和cmake,但是似乎不用
- "gcc"
- "g++"
- "cmake"
#我用到了eigen库,并且apt中的版本可以用,只需在这指定包
- "libeigen3-dev"
configure:
command:
- "mkdir ${LGTM_SRC}/build"
index:
build_command:
#这里操作就是正常的cmake build流程
- "cd ${LGTM_SRC}/build"
- "cmake .."
- "cmake --build . -j2"
由于我的代码很不幸地需要用到最新版opencv,所以还要加入一些步骤。
先由WSL2编译opencv4.5,然后将库文件打包成tar
然后在WSL2上尝试build流程,将执行的shell指令写入lgtm.yml文件中
extraction:
cpp:
prepare:
packages:
#准备需要的包,这里我出于谨慎提了gcc和cmake,但是似乎不用
- "gcc"
- "g++"
- "cmake"
#我用到了eigen库,并且apt中的版本可以用,只需在这指定包
- "libeigen3-dev"
configure:
command:
#写在这和写在下面好像没什么区别,都会执行bash
- "mkdir ${LGTM_SRC}/build"
#解压仓库中提前编译好的opencv4.5版本压缩包
- "cd ${LGTM_SRC}/3Party/linux-build"
- "tar -xzf opencv.tar"
index:
build_command:
#这里操作就是正常的cmake build流程
- "cd ${LGTM_SRC}/build"
- "cmake .."
- "cmake --build . -j2"
#因为我引入了opencv包而不是apt安装的,为了防止代码检查它而浪费时间,rm掉它
- "cd .."
- "rm -r 3Party/*"
你可以在LGTM的logs - 对应语言 - Extraction看到这些代码执行后的stdout和stderr
大功告成看到Succeeded就说明build成功了
这时候就可以按照Integrations中的提示设置badges了