使用 GitHub Actions 格式化和检查您的 Python 代码
在不断发展的软件开发领域,保持代码质量和一致性至关重要。确保代码库保持干净并遵守最佳实践的最有效方法之一是自动化格式化和 linting 过程。在这篇博文中,我们将逐步设置 GitHub Actions 工作流程,旨在自动执行 Python 项目的代码格式化和 linting。我们将探讨配置和所涉及的步骤,以及它如何节省您的时间并减少代码中的错误。
GitHub Actions 简介
GitHub Actions 是一个功能强大的工具,可让您直接在 GitHub 存储库中自动化工作流程。从运行测试到部署应用程序,GitHub Actions 可以根据推送、拉取请求等事件处理各种任务。在此示例中,我们将重点关注使用 GitHub Actions 自动化代码格式化和 linting。
工作流程分解
以下是用于格式化和检查 Python 代码的 GitHub Actions 工作流程的详细介绍:
name: Format and Lint on: push: branches: - master pull_request: branches: - master jobs: format-and-lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' # Specify the Python version to use - name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8 - name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive . - name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Check for changes git diff --exit-code || { echo "Changes detected. Committing changes..." # Configure Git user git config --global user.name "github-actions" git config --global user.email "actions@github.com" # Stage all changes git add . # Commit changes git commit -m "Apply code formatting and linting fixes" # Push changes git push origin HEAD }
工作流程组件解释
- 触发事件:
on: push: branches: - master pull_request: branches: - master
工作流程在向主分支推送和拉取请求时触发。这确保了对主分支或拉取请求的每次更改都会自动格式化和检查。
- 作业配置:
jobs: format-and-lint: runs-on: ubuntu-latest
该作业在最新版本的 Ubuntu 上运行。这是进行格式化和 linting 的环境。
- 结帐代码:
- name: Checkout code uses: actions/checkout@v3
此步骤检查您的存储库代码,允许后续步骤访问和修改它。
- 设置 Python:
- name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9'
此步骤在工作流环境中设置 Python 3.9。调整此项以匹配您项目中使用的 Python 版本。
- 安装依赖项:
- name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8
这里安装了用于格式化和 linting 的基本 Python 包 — black、isort 和 autopep8。
- 运行格式化程序:
- name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive .
这些步骤使用黑色应用代码格式,使用 isort 进行导入排序,使用 autopep8 进行其他格式调整。
- 提交更改:
- name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git diff --exit-code || { echo "Changes detected. Committing changes..." git config --global user.name "github-actions" git config --global user.email "actions@github.com" git add . git commit -m "Apply code formatting and linting fixes" git push origin HEAD }
如果进行了格式或 linting 更改,此步骤将提交并将它们推回存储库。它使用 GitHub 令牌进行身份验证,并使用通用用户配置 Git 进行提交。
此工作流程的好处
- 一致性:确保代码遵循一致的格式规则,提高可读性和可维护性。
- 自动化:自动化格式化和检查过程,减少手动干预和潜在错误。
- 集成:与您的 GitHub 存储库无缝集成,自动运行代码更改检查。
结论
实施 GitHub Actions 工作流程进行格式化和 linting 是维护项目中代码质量和一致性的明智方法。通过自动化这些过程,您可以更多地专注于编写代码,而不是格式化问题。此处提供的工作流程可作为坚实的基础,但您可以根据项目的特定需求进一步对其进行自定义。立即开始将此工作流程集成到您的存储库中,体验自动化代码质量管理的好处!
以上是使用 GitHub Actions 格式化和检查您的 Python 代码的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...

Python3.6环境下加载pickle文件报错:ModuleNotFoundError:Nomodulenamed...

使用Scapy爬虫时管道文件无法写入的原因探讨在学习和使用Scapy爬虫进行数据持久化存储时,可能会遇到管道文�...
