在不断发展的软件开发领域,保持代码质量和一致性至关重要。确保代码库保持干净并遵守最佳实践的最有效方法之一是自动化格式化和 linting 过程。在这篇博文中,我们将逐步设置 GitHub Actions 工作流程,旨在自动执行 Python 项目的代码格式化和 linting。我们将探讨配置和所涉及的步骤,以及它如何节省您的时间并减少代码中的错误。
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
此步骤检查您的存储库代码,允许后续步骤访问和修改它。
- 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 Actions 工作流程进行格式化和 linting 是维护项目中代码质量和一致性的明智方法。通过自动化这些过程,您可以更多地专注于编写代码,而不是格式化问题。此处提供的工作流程可作为坚实的基础,但您可以根据项目的特定需求进一步对其进行自定义。立即开始将此工作流程集成到您的存储库中,体验自动化代码质量管理的好处!
以上是使用 GitHub Actions 格式化和检查您的 Python 代码的详细内容。更多信息请关注PHP中文网其他相关文章!