Notiz
Diese GitHub-Aktion unterstützt noch keine CircleCI-Projekte, die in die CircleCI-GitHub-App integriert sind. Wenn die URL Ihres CircleCI-Projekts so aussieht: https://app.circleci.com/projects/organizations/circleci%
, integrieren Sie die CircleCI-GitHub-App und diese GitHub-Aktion wird noch nicht unterstützt. Bei Fragen/Feedback wenden Sie sich bitte an [email protected]. Wenn die URL Ihres CircleCI-Projekts so aussieht: https://app.circleci.com/projects/project-dashboard/github/
, verwenden Sie die OAuth-App-Integration von CircleCI und diese GitHub-Aktion wird unterstützt.
Lösen Sie Ihre CircleCI-Pipelines von jedem Ereignis auf GitHub aus mit GitHub-Aktionen aus.
Erstellen Sie einen GitHub-Aktionsworkflow für die gewünschte CircleCI-Pipeline.
Fügen Sie dazu eine Workflow-YAML-Datei (wir verwenden main.yml
) zu ./.github/workflows
hinzu.
In diesem Beispiel wird ein release
Trigger gezeigt. Probieren Sie eines der GitHub-Ereignisse zum Auslösen von Workflows aus: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
Wählen Sie einen benutzerdefinierten Namen und eine benutzerdefinierte ID für den Schritt aus, um zusätzliche kontextbezogene Metadaten in Ihrer CircleCI-Pipeline zu erhalten
am: Release: Typen: [veröffentlicht]Jobs: Trigger-Circleci: Läuft auf: Ubuntu-Neueste Schritte: - Name: <Name anpassen> ID: <ID anpassen> verwendet: CircleCI-Public/[email protected] Umgebung: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}
Erstellen Sie ein verschlüsseltes Geheimnis mit dem Namen CCI_TOKEN
das das persönliche API-Token enthält, das zum Auslösen der Pipelines verwendet wird. Es wird empfohlen, dass es sich hierbei um einen Maschinenbenutzer handelt.
Fügen Sie die Definitionen der Pipeline-Parameter zu Ihrer CircleCI-Konfiguration hinzu. Diese Daten werden bei Auslösung von der GitHub-Aktion eingegeben.
Fügen Sie Folgendes am Anfang Ihrer .circleci/config.yml
Datei hinzu. Stellen Sie sicher, dass Sie Version 2.1
angeben
Version: 2.1Parameter: GHA_Actor: Typ: String-Standard: „“ GHA_Action: Typ: String-Standard: „“ GHA_Event: Typ: String-Standard: „“ GHA_Meta: Typ: String-Standard: „“
Verwenden Sie die Pipeline-Parameterdaten, um Workflows bedingt auszuführen.
Siehe: Beispiele
Optionale Eingabeparameter, mit denen Sie zusätzliche Metadaten angeben können.
Erforderlich: falsch
Beschreibung : Ein optionaler zusätzlicher Metadatenparameter. Wird in der CircleCI-Pipeline als GHA_Meta verfügbar sein.
Jobs: Trigger-Circleci: Runs-On: Ubuntu-Neueste Schritte: – Name: <Name anpassen> ID: <ID anpassen> verwendet: CircleCI-Public/[email protected] mit: GHA_Meta: „<benutzerdefinierte Daten>“ env: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}
Erforderlich: falsch
Beschreibung : Der CircleCI-Projekt-Slug des Zielprojekts (z. B. github/<org>/<repo>
). Wenn nicht angegeben, wird der Slug des aktuellen GitHub-Repositorys verwendet.
Jobs: Trigger-Circleci: Runs-On: Ubuntu-Neueste Schritte: - Name: <Name anpassen> ID: <ID anpassen> verwendet: CircleCI-Public/[email protected] mit: target-slug: "gh/<org>/<repo>" # Wird ausgelöst die Pipeline für externe Projektumgebung: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}
Feld | Datentyp | Beschreibung |
---|---|---|
id | Zeichenfolge (UUID) | Die eindeutige ID der Pipeline. |
state | string (Enum: „created“ „errored“ „setup-pending“ „setup“ „pending“) | Der aktuelle Status der Pipeline. |
number | Ganzzahl (int64) | Die Nummer der Pipeline. |
created_at | Zeichenfolge (Datum-Uhrzeit) | Das Datum und die Uhrzeit, zu der die Pipeline erstellt wurde. |
Wenn ein Repository mit CircleCI verbunden ist und die Workflows in der Konfiguration dieses Projekts keine Bedingungen oder Filter angeben, die andernfalls die Ausführung verhindern würden, wird der Workflow standardmäßig bei jedem push
-Ereignis ausgeführt.
Dies kann bedeuten, dass es möglich ist, dass ein Job versehentlich zweimal ausgeführt wird, einmal beim push
-Ereignis von CircleCI sowie bei anderen Ereignissen, die durch die GitHub-Aktion ausgelöst werden.
Wenn Sie sich auf GitHub Actions verlassen, um alle Ihre API-Trigger bereitzustellen, stellen Sie sicher, dass jeder Workflow Ihrer CircleCI-Konfiguration eine Bedingung enthält, die seine Ausführung nur auf den GitHub Action-Trigger beschränkt.
Beispiel
Workflows: # Dieser Workflow ist so eingestellt, dass er bedingt ausgelöst wird, # nur über die GitHub-Aktion. # Wenn keine anderen ungefilterten Workflows vorhanden sind, werden normale Push-Ereignisse ignoriert. test: wann: <<pipeline.parameters.GHA_Action >> Jobs: - prüfen