在 Jenkins 中记录 shellcheck 结果

Posted

技术标签:

【中文标题】在 Jenkins 中记录 shellcheck 结果【英文标题】:Record shellcheck findings in Jenkins 【发布时间】:2021-07-26 14:10:04 【问题描述】:

我正在寻找一种方法来在我的 Jenkins 流水线脚本中记录 shellcheck 的违规结果。到目前为止,我找不到任何东西。对于其他工具(Java、Python),我使用的是Warnings Next Generation,但它似乎还不支持 shellcheck。我想在我的 Jenkins Job 仪表板中可视化违规行为。有没有人有这方面的经验?或者也许是一个现成的用于警告 NG 的自定义工具?

【问题讨论】:

我似乎记得 ShellCheck 能够输出 Checkstyle 报告,而 Jenkins 能够解析该报告(可能使用插件)。 【参考方案1】:

我自己确实找到了一个可行的解决方案。就像 cmets 中建议的那样,拼写检查提供了 checkstyle 格式,可以使用警告 NG 对其进行解析和可视化。以下 Pipeline 阶段定义工作正常。

stage('Analyze') 
    steps 
        catchError(buildResult: 'SUCCESS') 
            sh """#!/bin/bash
                # The null command `:` only returns exit code 0 to ensure following task executions.
                shellcheck -f checkstyle *.sh > shellcheck.xml || :
            """
            recordIssues(tools: [checkStyle(pattern: 'shellcheck.xml')])
        
    

运行构建会生成一个漂亮的趋势图,如下所示。

【讨论】:

以上是关于在 Jenkins 中记录 shellcheck 结果的主要内容,如果未能解决你的问题,请参考以下文章

Centos安装shellcheck的方法

centos上shellcheck的安装

如何在不导致脚本失败的情况下满足 shellcheck?

所有没有扩展名的文件的shellcheck vscode“shellcheck.ignorePatterns”

在CentOS系统上安装shell脚本检查工具shellcheck

ShellCheck 警告:“删除周围的 $() 以避免执行输出。[SC2091]”