首頁 後端開發 Python教學 使用 GitHub Actions 格式化並檢查您的 Python 程式碼

使用 GitHub Actions 格式化並檢查您的 Python 程式碼

Sep 10, 2024 am 10:52 AM

Formatting and Linting Your Python Codes with GitHub Actions

在不斷發展的軟體開發領域,維持程式碼品質和一致性至關重要。確保程式碼庫保持乾淨並遵守最佳實踐的最有效方法之一是自動化格式化和 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
          }
登入後複製

工作流程組件解釋

  1. 觸發事件
   on:
     push:
       branches:
         - master
     pull_request:
       branches:
         - master
登入後複製

工作流程在向主分支推送和拉取請求時觸發。這確保了對主分支或拉取請求的每次變更都會自動格式化和檢查。

  1. 作業配置
   jobs:
     format-and-lint:
       runs-on: ubuntu-latest
登入後複製

該作業在最新版本的 Ubuntu 上運作。這是進行格式化和 linting 的環境。

  1. 結帳代碼
   - name: Checkout code
     uses: actions/checkout@v3
登入後複製

此步驟檢查您的儲存庫程式碼,允許後續步驟存取和修改它。

  1. 設定 Python
   - name: Set up Python
     uses: actions/setup-python@v4
     with:
       python-version: '3.9'
登入後複製

此步驟在工作流程環境中設定 Python 3.9。調整此項目以符合您專案中使用的 Python 版本。

  1. 安裝依賴項
   - name: Install dependencies
     run: |
       python -m pip install --upgrade pip
       pip install black isort autopep8
登入後複製

這裡安裝了用於格式化和 linting 的基本 Python 套件 — black、isort 和 autopep8。

  1. 執行格式化程式
   - name: Run Black
     run: black .

   - name: Run isort
     run: isort .

   - name: Run autopep8
     run: autopep8 --in-place --recursive .
登入後複製

這些步驟使用黑色應用程式碼格式,使用 isort 進行匯入排序,使用 autopep8 進行其他格式調整。

  1. 提交更改
   - 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 進行提交。

此工作流程的好處

  1. 一致性:確保程式碼遵循一致的格式規則,提高可讀性和可維護性。
  2. 自動化:自動化格式化和檢查過程,減少手動幹預和潛在錯誤。
  3. 整合:與您的 GitHub 儲存庫無縫集成,自動執行程式碼變更檢查。

結論

實作 GitHub Actions 工作流程進行格式化和 linting 是維護專案中程式碼品質和一致性的明智方法。透過自動化這些過程,您可以更專注於編寫程式碼,而不是格式化問題。此處提供的工作流程可作為堅實的基礎,但您可以根據專案的特定需求進一步進行自訂。立即開始將此工作流程整合到您的儲存庫中,體驗自動化程式碼品質管理的好處!

以上是使用 GitHub Actions 格式化並檢查您的 Python 程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? 如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在Linux終端中使用python --version命令時如何解決權限問題? 在Linux終端中使用python --version命令時如何解決權限問題? Apr 02, 2025 am 06:36 AM

Linux終端中使用python...

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? 如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何繞過Investing.com的反爬蟲機制獲取新聞數據? 如何繞過Investing.com的反爬蟲機制獲取新聞數據? Apr 02, 2025 am 07:03 AM

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...

Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named '__builtin__'怎麼辦? Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named '__builtin__'怎麼辦? Apr 02, 2025 am 06:27 AM

Python3.6環境下加載pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

使用Scapy爬蟲時,管道文件無法寫入的原因是什麼? 使用Scapy爬蟲時,管道文件無法寫入的原因是什麼? Apr 02, 2025 am 06:45 AM

使用Scapy爬蟲時管道文件無法寫入的原因探討在學習和使用Scapy爬蟲進行數據持久化存儲時,可能會遇到管道文�...

See all articles