首页 > 编程问答 >如何在 github 操作中排除对主分支文件夹的检查黑色格式化程序?

如何在 github 操作中排除对主分支文件夹的检查黑色格式化程序?

时间:2024-07-20 20:47:34浏览次数:10  
标签:python github-actions cicd

我学习 Python,我想使用 GitHub 操作,但我对 Black Formatter 有疑问,因为它检查拉请求中的所有文件(也来自主分支),但我不需要它。我已尝试使用命令包含/排除搜索的任何选项,但都不起作用。

我的问题是什么?

我在 .yml 中使用此代码:

      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
      - run: pip install black flake8 isort mypy 
      - run: black --check . || false
      - run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
      - run: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --show-source --statistics
      - run: isort --check-only --profile black . || false
      - run: pip install -r requirements.txt || true
      - run: mypy --install-types --non-interactive . || false

并且我尝试了以下命令:

- run: black --check . --verbose --exclude="homework2\" || false

- run: black --check . --verbose --exclude=".\homework2\" || false

- run: black --check . --verbose --exclude="homework2" || false

- run: black --check . --exclude=^/homework2$ || false

- run: black --check . --exclude=.\_python_course\homework1\.py || false

- run: black . --include 'homework1\/.*\.py?$|homework2\/.*\.py?$' --check || false

- run: black . --exclude "/(_python_course/homework1)/" 
- run: black . --check || false 

遇到的问题在于, actions/checkout@v3 操作默认会获取整个仓库的历史记录,包括主分支。这就是为什么即使尝试排除某些文件夹,Black 依然会检查它们的原因,因为它们存在于被检查的仓库历史记录中。

为了解决这个问题,需要配置 actions/checkout@v3 只获取正在进行更改的分支。可以通过在 checkout 步骤中添加 fetch-depth: 0 参数来实现这一点。

以下是更新后的 .yml 文件代码:

      - uses: actions/checkout@v3
        with:
          fetch-depth: 0 # 只获取当前分支
      - uses: actions/setup-python@v3
      - run: pip install black flake8 isort mypy 
      - run: black --check . || false
      - run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
      - run: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --show-source --statistics
      - run: isort --check-only --profile black . || false
      - run: pip install -r requirements.txt || true
      - run: mypy --install-types --non-interactive . || false

通过设置 fetch-depth: 0 ,指示 checkout 操作只获取当前分支,而不获取整个仓库的历史记录。这样一来,Black 就只会检查在当前分支中修改的文件,而不会检查主分支中的文件。

此外,确保的排除模式正确。如果只想排除 homework2 文件夹及其所有内容,可以使用以下命令:

- run: black --check . --exclude "homework2/*" || false

这个命令会排除 homework2 文件夹下的所有文件和子文件夹。

希望这些信息对有所帮助!如果还有其他问题,请随时提问。

标签:python,github-actions,cicd
From: 78772258

相关文章

  • 用于检查 Google Gemini 支持的所有 GenerativeAI 模型的 Python 代码是什么?
    作为GenerativeAI世界的新手,我正在尝试加载预先训练的文本生成模型并做一些不起作用的事情。这就是我加载GenerativeAI模型的方式。fromvertexai.generative_modelsimportGenerativeModelgeneration_model=GenerativeModel("gemini-pro")由于它不......
  • 想让字典操作更优雅?自定义Python字典类型,简化你的代码库!
    目录1、继承dict类......
  • Vispy,一个专门用于创建交互式可视化的python库
    目录什么是Vispy?为什么选择Vispy?安装Vispy基础概念创建第一个Vispy可视化2D图形的进阶使用3D图形的绘制交互性结论什么是Vispy?Vispy是一个高性能的Python库,专门用于创建交互式可视化。它支持2D和3D数据的可视化,并且可以轻松地集成到各种应用程序中。Vispy的核心优......
  • python 复制 excel 保留文档中完全相同的参数(样式、单元格大小和融合、边框...)
    我正在寻找一种在其他文件中复制和excel的方法。我有一个“file_1.xlsx”,但我想要一个不存在的“file_1_copy.xlsx”。副本必须与原始文件完全相同,这意味着单元格大小、它们的融合、单元格中文本的颜色、背景、如果有边框,就好像我用右键单击。我有:importopenpyxlfromope......
  • python查看某个包的当前安装版本以及最新版本
    方法1:使用pip和--outdated参数你可以使用piplist--outdated命令来查看哪些包有更新版本可用。这个命令会列出所有安装的包以及它们在PyPI上的最新版本。piplist--outdated这将输出一个包列表,包含当前版本和最新版本,例如:PackageVersionLatestTyp......
  • 【python】错误 SyntaxError: invalid syntax的解决方法总结
    【python】错误SyntaxError:invalidsyntax的解决方法总结在Python编程中,SyntaxError:invalidsyntax是一个常见的错误,通常表示Python解释器在尝试解析代码时遇到了语法错误。这种错误可能由多种原因引起,包括拼写错误、缺少关键字、不恰当的缩进等。本文将深入探讨......
  • MiniQMT国债逆回购策略Python代码全解析
    文章目录......
  • python—爬虫的初步了解
    Python爬虫(WebScraping)是一种自动化从网站上提取数据的技术。Python由于其简洁的语法、丰富的库和强大的社区支持,成为了实现网络爬虫的首选语言之一。下面是一些Python爬虫的基本概念和步骤:1.爬虫的基本概念请求(Request):爬虫向服务器发送的请求,通常包括URL、HTTP方法(如......
  • Python集合的概念与使用
      在Python中,集合(set)是一种无序且不包含重复元素的数据结构。集合对象由一组大括号 或 函数创建,但请注意,大括号 在没有元素的情况下会创建一个空字典,而不是空集合。因此,当你想创建一个空集合时,应该使用 set()函数而不是 set{}集合的特点无序:集合中的元素没有特定的......
  • python——面向对象(2)继承与多态
    文章目录继承的基本语法继承的特点继承的类型多态在Python中,继承是一种基于已存在的类来创建新类的方式。这种机制允许我们定义一个通用的类,然后基于这个类来定义一些特定的类,这些特定的类将继承通用类的属性和方法,同时也可以添加或覆盖一些新的属性和方法。这种方式......