查看: 76|回覆: 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:qiongdian@foxmail.com

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

在本版发帖返回顶部