37

如何将 ESLint 与 Jenkins 集成?

4

2 回答 2

55

你需要将你的ESLint报告导出到一个 xml 文件中,并使用 jenkins 提供的任何违规/lint 报告插件,如CheckstyleWarningsViolations插件。

对于 ESLint,我个人更喜欢在 Jenkins 中使用 Checkstyle 插件。

因此,您可以将 eslint 报告导出到 Jenkins 的方法是执行以下操作:

  1. 在 Jenkins 作业的配置屏幕中,添加“执行 Shell”的构建步骤
  2. 将以下命令添加到其中:(eslint -c config.eslintrc -f checkstyle apps/**/* > eslint.xml替换apps/**/*为您的应用程序文件的路径)
  3. 添加“发布 Checkstyle 分析结果”的构建后操作并输入“eslint.xml”文件导出的路径。(这是假设你已经在 J​​enkins 中安装了 Checkstyle 插件)

然后,当您执行作业时,您将能够看到 ESLint 报告针对它执行的文件。


了解我所做的:

eslint -c config.eslintrc -f checkstyle apps/**/* > eslint.xml

  • -c config.eslintrc这点进入.eslintrc配置文件并使用我们在那里指定使用的任何内容。(请参阅上面我提供的 ESLint 链接)
  • -f checkstyle这将指定 eslint 它应该在报告中使用的格式,请参阅此链接中的可用格式
  • apps/**/*这是您希望 eslint 检查的文件的路径(**/* 是任何文件和文件夹的模式)
  • > filename这是每次运行构建时将存储结果的导出 cli arg

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

更新:

使用最新版本的 ESLint,您可以使用以下命令行参数将输出导出到您想要的任何文件中:

-o your_file.file_format

请参考他们的文档

笔记:

在调用 eslint 有错误的情况下,该命令将返回一个值1,并且构建将被标记为failed,这不一定是想要的。为避免这种情况,请附加以下内容:|| true

于 2015-08-20T17:12:28.010 回答
2

对于 ESLint 和 Jenkins 集成,您可以使用Warnings Next Generation插件。

多分支管道项目的一个示例是:

stage('Install dependencies') {
        steps {
            echo 'Installing dependencies...'
            sh 'rm -rf node_modules package-lock.json && npm install'
        }
}
stage('Build') {
        steps {
            sh 'npm run build'
        }
}
stage ('Static Analysis') {
        steps {
            sh ' ./node_modules/eslint/bin/eslint.js -f checkstyle src > eslint.xml'
        }
        post {
            always {
                recordIssues enabledForFailure: true, aggregatingResults: true, tool: checkStyle(pattern: 'eslint.xml')
            }
        }
    }
}

来自github 上的插件文档:

  • recordIssues步骤扫描给定文件集(或控制台日志)中的问题,并在您的构建中报告这些问题。
于 2021-02-14T15:11:24.967 回答