在不断发展的软件开发领域,保持代码质量和一致性至关重要。确保代码库保持干净并遵守最佳实践的最有效方法之一是自动化格式化和 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中文网其他相关文章!

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

文章讨论了虚拟环境在Python中的作用,重点是管理项目依赖性并避免冲突。它详细介绍了他们在改善项目管理和减少依赖问题方面的创建,激活和利益。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

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

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