Auslösen eines Workflows

Abgeschlossen

Niemand sollte Änderungen direkt an den Mainbranch in Ihrem Coderepository pushen dürfen. Idealerweise sollten Sie, wenn eine Entwicklung erforderlich ist, Änderungen an einer Kopie des Codes in einem Branch vornehmen.

Ein gängiger Ansatz besteht darin, mit Featurebranches zu arbeiten. Dabei wird ein Branch verwendet, um an einem Feature zu arbeiten. Beispielsweise muss das Data Science-Team die Modellleistung verbessern und versucht, dies zu tun, indem es mit Hyperparameterwerten experimentiert. Das Team kann einen Branch erstellen und den Hyperparameterwert im Trainingsskript aktualisieren. Nachdem es mit dem Experimentieren fertig ist, kann eine wissenschaftliche Fachkraft für Daten einen Pull Request erstellen, um den Branch mit dem Hauptrepository zusammenzuführen.

Durch das Arbeiten mit Branches und Pull Requests können Sie alle Änderungen an Ihrem Code überprüfen, bevor Sie sie mit dem Mainbranch zusammenführen. Pull Requests können auch als Trigger für GitHub Actions verwendet werden, um Aufgaben zu automatisieren, die einer vorgeschlagenen Änderung am Code folgen müssen, z. B. automatische Codequalitätsprüfungen.

Um featurebasierte Entwicklung und Automatisierung gemeinsam zu verwenden, ist Folgendes erforderlich:

  • Erstellen Sie eine Branchschutzregel, um direkte Pushs zum Mainbranch zu blockieren.
  • Erstellen Sie einen Branch, um den Code zu aktualisieren.
  • Lösen Sie einen GitHub Actions-Workflows aus, wenn ein Pull Request geöffnet wird.

Erstellen einer Branchschutzregel

Um Ihren Code zu schützen, sollten Sie alle direkten Pushs an den Mainbranch blockieren. Das Blockieren von direkten Pushs bedeutet, dass niemand direkt Codeänderungen an den Mainbranch pushen darf. Stattdessen werden Änderungen am Mainbranch vorgenommen, indem Pull Requests zusammengeführt werden.

Um den Mainbranch zu schützen, aktivieren Sie eine Branchschutzregel in GitHub:

  1. Navigieren Sie in Ihrem Repository zur Registerkarte Einstellungen.
  2. Wählen Sie auf der Registerkarte Einstellungen unter Code und Automatisierung die Option Branches aus.
  3. Wählen Sie Regel hinzufügen aus.
  4. Geben Sie unter Branchnamensmuster den Namen main ein.
  5. Aktivieren Sie Pull Request vor dem Zusammenführen anfordern und Genehmigungen erfordern.
  6. Speichern Sie die Änderungen.

Screenshot of configuring a branch protection rule in GitHub.

Erstellen Sie einen Branch, um den Code zu aktualisieren.

Wann immer Sie den Code bearbeiten möchten, müssen Sie einen Branch erstellen und in diesem arbeiten. Nachdem Sie Ihre Änderungen abgeschlossen haben, können Sie einen Pull Request erstellen, um den Featurebranch mit dem Mainbranch zusammenzuführen.

Auslösen eines GitHub Actions-Workflows

Schließlich möchten Sie die Erstellung von Pull Requests als Trigger für GitHub Actions-Workflows verwenden. Wenn beispielsweise jemand Änderungen am Code vorgenommen hat, möchten Sie einige Codequalitätsprüfungen ausführen.

Nur wenn der bearbeitete Code die Qualitätsprüfungen bestanden hat und die vorgeschlagenen Änderungen überprüft wurden, soll der Pull Request tatsächlich zusammengeführt werden.

Um einen GitHub Actions-Workflow auszulösen, können Sie on: [pull_request] verwenden. Wenn Sie diesen Trigger verwenden, wird Ihr Workflow immer ausgeführt, wenn der Pull Request erstellt wird.

Wenn ein Workflow ausgeführt werden soll, wenn ein Pull Request zusammengeführt wird, müssen Sie einen anderen Trigger verwenden. Das Zusammenführen eines Pull Requests ist im Wesentlichen ein Push an den Mainbranch. Um also einen Workflow auszulösen, der ausgeführt wird, wenn ein Pull Request zusammengeführt wird, verwenden Sie den folgenden Trigger im GitHub Actions-Workflow:

on:
  push:
    branches:
      - main