查看: 125|回复: 0

[教程] github与gltm持续集成教程

[复制链接]

6

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-5-19
发表于 2022-6-20 22:28:00 | 显示全部楼层 |阅读模式

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了



来源:https://www.cnblogs.com/Nikola-K/p/16395037.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部