当前位置 : 主页 > 编程语言 > 其它开发 >

github与gltm持续集成教程

来源:互联网 收集:自由互联 发布时间:2022-06-21
LGTM简介 LGTM提供了一个持续集成工具,主要检查代码的安全性、可维护性等等,官网在https://lgtm.com/ 可直接用github登录。关于LGTM的介绍可以看https://lgtm.com/help/lgtm/about-lgtm 主要还是可以
LGTM简介

LGTM提供了一个持续集成工具,主要检查代码的安全性、可维护性等等,官网在https://lgtm.com/ 可直接用github登录。关于LGTM的介绍可以看https://lgtm.com/help/lgtm/about-lgtm
主要还是可以得到一个帅帅的code quality认证

C++ CI配置 工具链

Windows10 -- MinGW + CMake ,WSL2

准备

登录LGTM,点击右上角的Project lists,复制自己仓库的地址,点击follow,看到下面出现仓库就说明follow成功了,会尝试默认配置进行build

LGTM C++配置文件

如果比较幸运,默认配置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了

网友评论