Github 仅工作流操作修改的文件

Github Workflow Actions Only Modified Files

对于我的项目 PR 流程,我想添加代码格式检查。我正在使用 github marketplace linter,Black (https://github.com/marketplace/actions/black-code-formatter) 来执行此操作。我从代码示例开始工作,但它 运行s 用于 repo 中的所有文件,而不仅仅是 PR 中修改的文件。有什么办法可以改变吗?

我 运行 我的 main.workflow 文件中的市场页面示例,它按预期工作

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

我不认为你可以用那个特定的动作做你想做的事。为了将参数传递给操作,您需要使用文字或 a context expression。但是,要查找文件列表,您需要使用 shell 管道,并且无法在上下文表达式中调用 shell。

如果您想将 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 调用都成功退出,则该命令将退出零值。