In der sich ständig weiterentwickelnden Landschaft der Softwareentwicklung ist die Aufrechterhaltung der Codequalität und -konsistenz von entscheidender Bedeutung. Eine der effektivsten Möglichkeiten, um sicherzustellen, dass Ihre Codebasis sauber bleibt und Best Practices einhält, ist die Automatisierung von Formatierungs- und Linting-Prozessen. In diesem Blogbeitrag gehen wir Schritt für Schritt durch die Einrichtung eines GitHub Actions-Workflows, der die Codeformatierung und Linting für Python-Projekte automatisieren soll. Wir untersuchen die Konfiguration und die damit verbundenen Schritte und wie Sie dadurch Zeit sparen und Fehler in Ihrem Code reduzieren können.
GitHub Actions ist ein leistungsstarkes Tool, mit dem Sie Arbeitsabläufe direkt in Ihrem GitHub-Repository automatisieren können. Von der Durchführung von Tests bis zur Bereitstellung von Anwendungen können GitHub-Aktionen verschiedene Aufgaben basierend auf Ereignissen wie Pushs, Pull-Anfragen und mehr erledigen. In diesem Beispiel konzentrieren wir uns auf die Automatisierung der Codeformatierung und Linting mithilfe von GitHub Actions.
Hier ist ein detaillierter Blick auf den GitHub Actions-Workflow zum Formatieren und Flusen von Python-Code:
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
Der Workflow wird durch Push- und Pull-Anfragen an den Hauptzweig ausgelöst. Dadurch wird sichergestellt, dass jede Änderung am Hauptzweig oder Pull-Request automatisch formatiert und gelinted wird.
jobs: format-and-lint: runs-on: ubuntu-latest
Der Job läuft auf der neuesten Version von Ubuntu. Dies ist die Umgebung, in der Ihre Formatierung und Flusen stattfinden.
- name: Checkout code uses: actions/checkout@v3
In diesem Schritt wird Ihr Repository-Code ausgecheckt, sodass nachfolgende Schritte darauf zugreifen und ihn ändern können.
- name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9'
In diesem Schritt wird Python 3.9 in der Workflow-Umgebung eingerichtet. Passen Sie dies an die in Ihrem Projekt verwendete Python-Version an.
- name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8
Hier werden wichtige Python-Pakete zum Formatieren und Linting – black, isort und autopep8 – installiert.
- name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive .
Diese Schritte wenden die Codeformatierung mit Schwarz, isort für die Importsortierung und autopep8 für zusätzliche Formatierungsanpassungen an.
- 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 }
Wenn Formatierungs- oder Linting-Änderungen vorgenommen werden, werden diese in diesem Schritt festgeschrieben und zurück in das Repository verschoben. Es verwendet ein GitHub-Token zur Authentifizierung und konfiguriert Git mit einem generischen Benutzer für Commits.
Die Implementierung eines GitHub Actions-Workflows für Formatierung und Linting ist eine clevere Möglichkeit, die Codequalität und -konsistenz in Ihren Projekten aufrechtzuerhalten. Durch die Automatisierung dieser Prozesse können Sie sich mehr auf das Schreiben von Code konzentrieren und müssen sich weniger mit Formatierungsproblemen befassen. Der hier bereitgestellte Workflow dient als solide Grundlage, Sie können ihn jedoch je nach den spezifischen Anforderungen Ihres Projekts weiter anpassen. Beginnen Sie noch heute mit der Integration dieses Workflows in Ihre Repositorys und erleben Sie die Vorteile des automatisierten Code-Qualitätsmanagements!
Das obige ist der detaillierte Inhalt vonFormatieren und Flusen Ihrer Python-Codes mit GitHub-Aktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!