Github工作流程操作仅修改了文件

时间:2019-09-09 20:36:00

标签: github github-actions

对于我的项目PR流程,我想添加代码格式检查。我正在使用github市场上的linter,Black(https://github.com/marketplace/actions/black-code-formatter)来做到这一点。我在代码示例中进行了此工作,但是它针对存储库中的所有文件运行,而不仅仅是PR中的修改文件。有什么办法可以改变吗?

我已经从main.workflow文件的市场页面中运行了该示例,该示例可以正常运行

我认为问题与黑名单有关,现在是: args = ". --check --fast",这会检查每个文件。我不确定如何将其更改为仅检查PR中已修改文件的格式。

1 个答案:

答案 0 :(得分:1)

我认为您无法通过该特定操作来完成自己想做的事情。为了将参数传递给操作,您需要使用文字或a context expression。但是,要查找文件列表,您需要使用外壳程序管道,并且无法在上下文表达式中调用外壳程序。

如果您想将Black作为开发依赖项添加到您的项目中,则可以使用环境变量GITHUB_SHAGITHUB_BASE_REF as described in the documentation,然后运行类似于以下内容的代码来调用它:

git diff --name-only "$GITHUB_BASE_REF..$GITHUB_SHA" | xargs black --check --fast

假设该应用程序名为black,并且可以在命令行上检查任意数量的文件;如果不是这种情况,则可能需要进行调整。如果检查失败,则该命令将退出非零值;如果每个black调用均成功退出,则该命令将返回非零值。