热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gitlab中的Pylint徽章

如何解决《gitlab中的Pylint徽章》经验,为你挑选了1个好方法。

Gitlab具有生成有关构建状态和覆盖百分比的徽章的功能.
是否可以创建自定义徽章以显示Pylint结果?或者只是在README.md中显示此结果?
我已经为Pylint做了CI工作



1> JGC..:

我编写了一个python徽章生成包,可以在视觉上与主徽章服务类似地生成徽章.它非常灵活,您可以在您的python代码中导入和使用,或从命令行运行.

我在GitLab CI中使用它来显示pylint和覆盖率分数.

还有其他的方法可以做到这一点使用shields.io(见对方的回答从kubouch),但是这种方法可以在情况下使用您可能没有外部Internet访问,如在公司/企业的环境,让防火墙或代理卡住互联网.

GitLab CI设置

1.生成徽章

我的CI管道有一个运行pylint的步骤,我曾经sed从输出文本中提取得分.然后我使用anybadge(详细信息如下)生成一个pylint分数徽章,并将其保存为public/pylint.svg.

pylint:
  stage: test
  script:
    - pylint --rcfile=.pylintrc --output-format=text  | tee pylint.txt
    - score=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' pylint.txt)
    - echo "Pylint score was $score"
    - anybadge --value=$score --file=public/pylint.svg pylint

如果pylint生成非零rc,那么GitLab会将其视为命令错误并且作业将失败,这意味着不会生成徽章,并且丢失的图像将显示徽章的使用位置.

注意:pylint WILL OFTEN生成非零返回码,因为它使用退出代码来传达lint检查的状态.我建议使用像pylint-exit这样的东西来处理CI管道中的pylint返回码.

2.将徽章注册为管道工件

我将生成的徽章文件注册为CI作业中的工件,方法是将其包括在.gitlab-ci.yml:

pylint:
    ...
    - echo "Pylint score was $score"
    - anybadge --value=$score --file=public/pylint.svg pylint
  artifacts:
    paths:
      - public/pylint.svg

3.将徽章发布到GitLab Pages

我包含一个页面发布步骤,它将公共目录中的所有内容部署到GitLab页面:

pages:
  stage: deploy
  artifacts:
    paths:
    - public
  only:
  - master

4.在README.md中包含徽章

当为项目运行主管道时,该pylint.svg文件将发布到GitLab页面,然后我可以从我的项目中引用该图像,README.md以便显示最新的pylint标记.

如果你的项目使用https://gitlab.com,那么svg工件的URL通常是这样的(用你的用户名替换NAMESPACE,如果你的项目在一个组下,则用组名替换 - 这里有更多细节):

https://NAMESPACE.gitlab.io/pyling.svg

在您的README.md中,您可以包含一个图像:

![pylint](https://NAMESPACE.gitlab.io/pyling.svg)

如果您想将图像转换为链接,可以使用:

[![pylint](https://NAMESPACE.gitlab.io/pyling.svg)](LINKTARGET)

如果您需要有关任何设置的更多信息,请与我们联系.

Anybadge Python包

以下是anybadge Python包的更多信息:

您可以设置徽章标签和值,也可以根据阈值设置颜色.有针对pylint,coverage和管道成功的预建设置,但您可以创建自己喜欢的任何徽章.

以下是github项目的链接,其中包含更详细的文档:https://github.com/jongracecox/anybadge

安装时 pip install anybadge

示例python代码:

import anybadge

# Define thresholds: <2=red, <4=orange <8=yellow <10=green
thresholds = {2: 'red',
              4: 'orange',
              6: 'yellow',
              10: 'green'}

badge = anybadge.Badge('pylint', 2.22, thresholds=thresholds)

badge.write_badge('pylint.svg')

命令行使用示例:

anybadge --label pylint --value 2.22 --file pylint.svg 2=red 4=orange 8=yellow 10=green


推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
author-avatar
372630243
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有