我正在尝试编写一个命令来获取当前分支中但不在master中的提交中触及的所有文件(作为路径/到/文件)。
为了给出一些上下文,Jenkins会将这些文件(当匹配.jsx和.js时)作为eslint
的参数传递并发布问题。我无法在所有代码库上运行eslint,因为之前从未使用过linter进行过解析,因此存在无穷无尽的错误。
这是我到目前为止所得到的:
node node_modules / eslint / bin / eslint.js -f checkstyle $($(printf'npm run compare_master_current')| tail -n +5)--ext .jsx> eslint.xml;
其中compare_master_current
是:
git log --pretty ='format:' - name-only master .. $(git branch | grep \ * | awk'{print $ 2}')
它们都作为npm脚本存储在我的package.json
中:
"scripts": {
"eslint:jenkins": "node node_modules/eslint/bin/eslint.js -f checkstyle $( $(printf 'npm run compare_master_current') | tail -n +5 ) --ext .jsx > eslint.xml; exit 0",
"compare_master_current": "git log --pretty='format:' --name-only master..$(git branch | grep \\* | awk '{print $2}')"
}
我的解决方案有效,但我不是专家,所以: 1)我不能确定它是没有错误的 2)我不能确定这是最好的方法(我相信还有改进的余地)
任何贡献都将非常感谢!
谢谢!
更新:为了让它适用于Jenkins,我不得不做出这样的改变:
"compare_master_current": "git log --pretty='format:' --name-only master.."
不知道为什么选择downvote但我将Jenkins添加到标题中,以便更清楚地了解命令的上下文。
答案 0 :(得分:1)
一种更简单的方法来抑制现有文件中的错误是将它放在每个文件的顶部:
/* eslint-disable */
然后,您可以始终在整个代码库上运行eslint,它只会报告没有此抑制的新文件的错误。
通过这种方式,您还可以逐个文件逐步清理现有错误,并删除对这些文件的抑制。