You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中让black和flake8排除Django迁移文件

在GitHub Actions中让black和flake8排除Django迁移文件

问题分析

从运行输出能看到,black正在检查并试图格式化Django迁移文件,导致Action执行失败;flake8虽已配置排除规则,需确认其是否正常生效。以下是针对两者的具体解决方案:

解决步骤

1. 确保flake8排除迁移文件

你在.flake8中配置的exclude = */migrations/*是正确的,当前GitHub Actions中的flake8命令未覆盖该规则,会自动读取配置文件。如果后续发现flake8仍检查迁移文件,可在命令中显式添加排除参数:

# 语法检查命令(存在错误则终止构建)
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude=*/migrations/*
# 警告级检查命令(所有错误视为警告)
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --exclude=*/migrations/*

2. 配置black排除迁移文件

Black支持两种设置排除规则的方式,推荐用配置文件统一管理:

方法一:使用pyproject.toml(推荐)

在项目根目录创建或修改pyproject.toml,添加Black的配置:

[tool.black]
exclude = '''
/(
    migrations
)/
'''

该配置会让Black自动跳过所有migrations目录下的文件,无需在命令行重复设置。

方法二:直接修改GitHub Actions中的Black步骤

若不想新增配置文件,可在Action的Black步骤里添加--exclude参数:

- uses: psf/black@stable
  with:
    options: --check --diff --exclude='*/migrations/*'
    src: .
    jupyter: false

最终的GitHub Actions配置示例

调整后的完整linting步骤:

linting:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v2
    - uses: psf/black@stable
      with:
        options: --check --diff --exclude='*/migrations/*'
        src: .
        jupyter: false
    - name: Install dependencies
      run: pip install flake8
    - name: Lint with flake8
      run: |
        # 若存在Python语法错误或未定义名称则终止构建
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
        # 将所有错误视为警告,适配GitHub编辑器的127字符宽度
        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

提交修改后重新触发Action,Black就会跳过迁移文件,不会再因这些文件的格式问题导致执行失败。

内容的提问来源于stack exchange,提问作者Benjamin Geoffrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:25:58