GitHub アクションを使用した Python コードのフォーマットとリンティング

王林
リリース: 2024-09-10 10:52:17
オリジナル
201 人が閲覧しました

Formatting and Linting Your Python Codes with GitHub Actions

進化し続けるソフトウェア開発環境においては、コードの品質と一貫性を維持することが極めて重要です。コードベースをクリーンな状態に保ち、ベスト プラクティスに従っていることを確認する最も効果的な方法の 1 つは、フォーマットと lint プロセスを自動化することです。このブログ投稿では、Python プロジェクトのコードのフォーマットと lint を自動化するように設計された GitHub Actions ワークフローのセットアップについて説明します。構成と関連する手順、およびそれによってどのように時間を節約し、コード内のエラーを減らすことができるかについて説明します。

GitHub アクションの概要

GitHub Actions は、GitHub リポジトリ内で直接ワークフローを自動化できる強力なツールです。テストの実行からアプリケーションのデプロイまで、GitHub Actions はプッシュやプル リクエストなどのイベントに基づいてさまざまなタスクを処理できます。この例では、GitHub Actions を使用したコードのフォーマットと lint の自動化に焦点を当てます。

ワークフローの内訳

ここでは、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
ログイン後にコピー

ワークフローは、master ブランチへのプッシュおよびプル リクエストでトリガーされます。これにより、メイン ブランチまたはプル リクエストに対するすべての変更が自動的にフォーマットされ、lint 処理されます。

  1. ジョブ構成:
   jobs:
     format-and-lint:
       runs-on: ubuntu-latest
ログイン後にコピー

ジョブは最新バージョンの Ubuntu で実行されます。これは、フォーマットやリンティングが発生する環境です。

  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
ログイン後にコピー

ここでは、フォーマットとリンティングに必須の 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
       }
ログイン後にコピー

フォーマットまたは lint の変更が行われた場合、このステップでそれらがコミットされ、リポジトリにプッシュされます。認証には GitHub トークンを使用し、コミットには汎用ユーザーを使用して Git を構成します。

このワークフローの利点

  1. 一貫性: コードが一貫した書式設定ルールに従っていることを保証し、可読性と保守性を向上させます。
  2. 自動化: フォーマットとリンティングのプロセスを自動化し、手動介入と潜在的なエラーを削減します。
  3. 統合: GitHub リポジトリとシームレスに統合し、コードの変更時にチェックを自動的に実行します。

結論

フォーマットとリンティングのための GitHub Actions ワークフローを実装することは、プロジェクト全体でコードの品質と一貫性を維持するための賢い方法です。これらのプロセスを自動化すると、書式設定の問題ではなく、コードの作成に集中できるようになります。ここで提供されるワークフローは強固な基盤として機能しますが、プロジェクト固有のニーズに基づいてさらにカスタマイズできます。今すぐこのワークフローをリポジトリに統合して、自動化されたコード品質管理のメリットを体験してください!

以上がGitHub アクションを使用した Python コードのフォーマットとリンティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!