Formater et linter vos codes Python avec les actions GitHub

王林
Libérer: 2024-09-10 10:52:17
original
383 Les gens l'ont consulté

Formatting and Linting Your Python Codes with GitHub Actions

Dans le paysage en constante évolution du développement logiciel, le maintien de la qualité et de la cohérence du code est crucial. L'un des moyens les plus efficaces de garantir que votre base de code reste propre et respecte les meilleures pratiques consiste à automatiser les processus de formatage et de peluchage. Dans cet article de blog, nous expliquerons la configuration d'un workflow GitHub Actions conçu pour automatiser le formatage et le peluchage du code pour les projets Python. Nous explorerons la configuration et les étapes impliquées, ainsi que la façon dont cela peut vous faire gagner du temps et réduire les erreurs dans votre code.

Introduction aux actions GitHub

GitHub Actions est un outil puissant qui vous permet d'automatiser les flux de travail directement dans votre référentiel GitHub. De l'exécution de tests au déploiement d'applications, GitHub Actions peut gérer diverses tâches basées sur des événements tels que des push, des pull request, etc. Dans cet exemple, nous nous concentrerons sur l'automatisation du formatage et du linting du code à l'aide des actions GitHub.

La répartition du flux de travail

Voici un aperçu détaillé du workflow GitHub Actions pour le formatage et le linting du code Python :

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
          }
Copier après la connexion

Composants du flux de travail expliqués

  1. Événements déclencheurs :
   on:
     push:
       branches:
         - master
     pull_request:
       branches:
         - master
Copier après la connexion

Le workflow est déclenché sur les requêtes push et pull vers la branche master. Cela garantit que chaque modification apportée à la branche principale ou à la demande d'extraction est automatiquement formatée et lissée.

  1. Configuration des tâches :
   jobs:
     format-and-lint:
       runs-on: ubuntu-latest
Copier après la connexion

Le travail s'exécute sur la dernière version d'Ubuntu. C'est l'environnement dans lequel se produiront votre formatage et votre peluchage.

  1. Code de paiement :
   - name: Checkout code
     uses: actions/checkout@v3
Copier après la connexion

Cette étape vérifie le code de votre référentiel, permettant aux étapes suivantes d'y accéder et de le modifier.

  1. Configurer Python :
   - name: Set up Python
     uses: actions/setup-python@v4
     with:
       python-version: '3.9'
Copier après la connexion

Cette étape configure Python 3.9 dans l'environnement de workflow. Ajustez-le pour qu'il corresponde à la version Python utilisée dans votre projet.

  1. Installer les dépendances :
   - name: Install dependencies
     run: |
       python -m pip install --upgrade pip
       pip install black isort autopep8
Copier après la connexion

Ici, les packages Python essentiels pour le formatage et le peluchage (black, isort et autopep8) sont installés.

  1. Exécuter les formateurs :
   - name: Run Black
     run: black .

   - name: Run isort
     run: isort .

   - name: Run autopep8
     run: autopep8 --in-place --recursive .
Copier après la connexion

Ces étapes appliquent le formatage du code en utilisant black, isort pour le tri des importations et autopep8 pour des ajustements de formatage supplémentaires.

  1. Commettre les modifications :
   - 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
       }
Copier après la connexion

Si des modifications de formatage ou de peluchage sont apportées, cette étape les valide et les renvoie vers le référentiel. Il utilise un jeton GitHub pour l'authentification et configure Git avec un utilisateur générique pour les validations.

Avantages de ce flux de travail

  1. Cohérence : garantit que le code suit des règles de formatage cohérentes, améliorant ainsi la lisibilité et la maintenabilité.
  2. Automation : automatise le processus de formatage et de peluchage, réduisant ainsi les interventions manuelles et les erreurs potentielles.
  3. Intégration : s'intègre de manière transparente à votre référentiel GitHub, exécutant automatiquement des vérifications sur les modifications de code.

Conclusion

La mise en œuvre d'un workflow GitHub Actions pour le formatage et le peluchage est un moyen intelligent de maintenir la qualité et la cohérence du code dans vos projets. En automatisant ces processus, vous pouvez vous concentrer davantage sur l’écriture du code et moins sur les problèmes de formatage. Le flux de travail fourni ici constitue une base solide, mais vous pouvez le personnaliser davantage en fonction des besoins spécifiques de votre projet. Commencez dès aujourd'hui à intégrer ce workflow dans vos référentiels et découvrez les avantages de la gestion automatisée de la qualité du code !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal