ホームページ >バックエンド開発 >Python チュートリアル >GitHub アクションを使用した Python コードのフォーマットとリンティング
進化し続けるソフトウェア開発環境においては、コードの品質と一貫性を維持することが極めて重要です。コードベースをクリーンな状態に保ち、ベスト プラクティスに従っていることを確認する最も効果的な方法の 1 つは、フォーマットと lint プロセスを自動化することです。このブログ投稿では、Python プロジェクトのコードのフォーマットと lint を自動化するように設計された GitHub Actions ワークフローのセットアップについて説明します。構成と関連する手順、およびそれによってどのように時間を節約し、コード内のエラーを減らすことができるかについて説明します。
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 }
on: push: branches: - master pull_request: branches: - master
ワークフローは、master ブランチへのプッシュおよびプル リクエストでトリガーされます。これにより、メイン ブランチまたはプル リクエストに対するすべての変更が自動的にフォーマットされ、lint 処理されます。
jobs: format-and-lint: runs-on: ubuntu-latest
ジョブは最新バージョンの Ubuntu で実行されます。これは、フォーマットやリンティングが発生する環境です。
- 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
ここでは、フォーマットとリンティングに必須の 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 }
フォーマットまたは lint の変更が行われた場合、このステップでそれらがコミットされ、リポジトリにプッシュされます。認証には GitHub トークンを使用し、コミットには汎用ユーザーを使用して Git を構成します。
フォーマットとリンティングのための GitHub Actions ワークフローを実装することは、プロジェクト全体でコードの品質と一貫性を維持するための賢い方法です。これらのプロセスを自動化すると、書式設定の問題ではなく、コードの作成に集中できるようになります。ここで提供されるワークフローは強固な基盤として機能しますが、プロジェクト固有のニーズに基づいてさらにカスタマイズできます。今すぐこのワークフローをリポジトリに統合して、自動化されたコード品質管理のメリットを体験してください!
以上がGitHub アクションを使用した Python コードのフォーマットとリンティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。