Behebung von Problemen mit Workflows - Amazon CodeCatalyst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Behebung von Problemen mit Workflows

Lesen Sie die folgenden Abschnitte, um Probleme im Zusammenhang mit Workflows in Amazon zu beheben CodeCatalyst. Weitere Informationen zu Workflows finden Sie unter Mit Workflows erstellen, testen und bereitstellen.

Wie behebe ich die Meldung „Der Workflow ist inaktiv“?

Problem: In der CodeCatalyst Konsole wird unter CI/CD, Workflows, Ihr Workflow mit der folgenden Meldung angezeigt:

Workflow is inactive.

Diese Meldung weist darauf hin, dass die Workflow-Definitionsdatei einen Trigger enthält, der nicht für den Zweig gilt, in dem Sie sich gerade befinden. Ihre Workflow-Definitionsdatei könnte beispielsweise einen PUSH Trigger enthalten, der auf Ihren main Zweig verweist, aber Sie befinden sich in einem Feature-Branch. Da die Änderungen, die Sie an Ihrem Feature-Branch vornehmenmain, sich nicht auf Workflow-Läufe beziehen und auch keine Workflow-Läufe startenmain, CodeCatalyst setzt Sie den Workflow in dem Branch außer Betrieb und markiert ihn alsInactive.

Mögliche Lösungen:

Wenn Sie einen Workflow für Ihren Feature Branch starten möchten, können Sie wie folgt vorgehen:

  • Entfernen Sie in Ihrem Feature Branch in der Workflow-Definitionsdatei die Branches Eigenschaft aus dem Triggers Abschnitt, sodass sie wie folgt aussieht:

    Triggers: - Type: PUSH

    Diese Konfiguration bewirkt, dass der Trigger bei einem Push in einen beliebigen Branch aktiviert wird, einschließlich Ihres Feature-Branches. Wenn der Trigger aktiviert ist, CodeCatalyst wird ein Workflow-Lauf mit der Workflow-Definitionsdatei und den Quelldateien in dem Zweig gestartet, in den Sie pushen.

  • Entfernen Sie in Ihrem Feature-Branch in der Workflow-Definitionsdatei den Triggers Abschnitt und führen Sie den Workflow manuell aus.

  • Ändern Sie in Ihrem Feature-Branch in der Workflow-Definitionsdatei den PUSH Abschnitt so, dass er auf Ihren Feature-Branch verweist und nicht auf einen anderen Branch (wie main zum Beispiel).

Wichtig

Achten Sie darauf, diese Änderungen nicht zu übernehmen, wenn Sie nicht beabsichtigen, sie wieder in Ihrem main Branch zusammenzuführen.

Weitere Informationen zum Bearbeiten der Workflow-Definitionsdatei finden Sie unterEinen Workflow erstellen.

Weitere Informationen zu Auslösern finden Sie unter Automatisches Starten einer Workflow-Ausführung mithilfe von Triggern.

Wie behebe ich „Die Workflow-Definition hat n Fehler“ Fehler?

Problem: Es wird eine der folgenden Fehlermeldungen angezeigt:

Fehler 1:

Auf der Seite CI/CD, Workflows, sehen Sie unter dem Namen Ihres Workflows:

Workflow definition has n errors

Fehler 2:

Wenn Sie einen Workflow bearbeiten, klicken Sie auf die Schaltfläche „Validieren“ und die folgende Meldung wird oben in der CodeCatalyst Konsole angezeigt:

The workflow definition has errors. Fix the errors and choose Validate to verify your changes.

Fehler 3:

Nachdem Sie zur Detailseite Ihres Workflows navigiert haben, wird im Feld Workflow-Definition der folgende Fehler angezeigt:

n errors

Mögliche Lösungen:

  • Wählen Sie CI/CD, wählen Sie Workflows und wählen Sie den Namen des Workflows aus, in dem der Fehler aufgetreten ist. Wählen Sie im Feld Workflow-Definition oben den Link zu dem Fehler aus. Details zum Fehler werden unten auf der Seite angezeigt. Folgen Sie den Tipps zur Fehlerbehebung in der Fehlermeldung, um das Problem zu beheben.

  • Stellen Sie sicher, dass es sich bei der Workflow-Definitionsdatei um eine YAML Datei handelt.

  • Stellen Sie sicher, dass die YAML Eigenschaften in der Workflow-Definitionsdatei auf der richtigen Ebene verschachtelt sind. Informationen darüber, wie Eigenschaften in der Workflow-Definitionsdatei verschachtelt werden sollten, finden Sie in oder in der YAMLWorkflow-Definition Dokumentation Ihrer Aktion, die mit dem Link von verknüpft ist. Aktion zu einem Workflow hinzufügen

  • Stellen Sie sicher, dass Sternchen (*) und andere Sonderzeichen korrekt maskiert werden. Um sie zu maskieren, fügen Sie einfache oder doppelte Anführungszeichen hinzu. Beispielsweise:

    Outputs: Artifacts: - Name: myartifact Files: - "**/*"

    Weitere Hinweise zu Sonderzeichen in der Workflow-Definitionsdatei finden Sie unterRichtlinien und Konventionen zur Syntax.

  • Stellen Sie sicher, dass die YAML Eigenschaften in der Workflow-Definitionsdatei die richtige Groß-/Kleinschreibung verwenden. Weitere Informationen zu Regeln für Groß- und Kleinschreibung finden Sie unterRichtlinien und Konventionen zur Syntax. Informationen zur korrekten Groß- und Kleinschreibung der einzelnen Eigenschaften finden Sie in der YAMLWorkflow-Definition oder in der Dokumentation zu Ihrer Aktion, die mit dem Link von verknüpft istAktion zu einem Workflow hinzufügen.

  • Vergewissern Sie sich, dass die SchemaVersion Eigenschaft in der Workflow-Definitionsdatei vorhanden und auf die richtige Version eingestellt ist. Weitere Informationen finden Sie unter SchemaVersion.

  • Stellen Sie sicher, dass der Triggers Abschnitt in der Workflow-Definitionsdatei alle erforderlichen Eigenschaften enthält. Um die erforderlichen Eigenschaften zu ermitteln, wählen Sie den Trigger im Visual Editor aus und suchen Sie nach Feldern, in denen Informationen fehlen, oder schauen Sie in der Referenzdokumentation zu Triggern unter nachTriggers.

  • Stellen Sie sicher, dass die DependsOn Eigenschaft in der Workflow-Definitionsdatei richtig konfiguriert ist und keine zirkulären Abhängigkeiten mit sich bringt. Weitere Informationen finden Sie unter Aktionen sequenzieren.

  • Stellen Sie sicher, dass der Actions Abschnitt in der Workflow-Definitionsdatei mindestens eine Aktion enthält. Weitere Informationen finden Sie unter Aktionen.

  • Stellen Sie sicher, dass jede Aktion alle erforderlichen Eigenschaften enthält. Um die erforderlichen Eigenschaften zu ermitteln, wählen Sie die Aktion im Visual Editor aus und suchen Sie nach Feldern, in denen Informationen fehlen, oder schauen Sie in der Dokumentation zu Ihrer Aktion nach, auf die von verlinkt wirdAktion zu einem Workflow hinzufügen.

  • Stellen Sie sicher, dass alle Eingabeartefakte über entsprechende Ausgabeartefakte verfügen. Weitere Informationen finden Sie unter Definition eines Ausgabeartefakts.

  • Stellen Sie sicher, dass die in einer Aktion definierten Variablen exportiert werden, damit sie in anderen Aktionen verwendet werden können. Weitere Informationen finden Sie unter Eine Variable exportieren, damit sie von anderen Aktionen verwendet werden kann.

Wie behebe ich die Fehler „Anmeldeinformationen konnten nicht gefunden werden“ und ExpiredToken „“?

Problem: Während der Tutorial: Eine Anwendung auf Amazon bereitstellen EKS Bearbeitung werden im Terminalfenster Ihres Entwicklungscomputers eine oder beide der folgenden Fehlermeldungen angezeigt:

Unable to locate credentials. You can configure credentials by running "aws configure".

ExpiredToken: The security token included in the request is expired

Mögliche Lösungen:

Diese Fehler weisen darauf hin, dass die Anmeldeinformationen, die Sie für den Zugriff auf AWS Dienste verwenden, abgelaufen sind. Führen Sie in diesem Fall den aws configure Befehl nicht aus. Verwenden Sie stattdessen die folgenden Anweisungen, um Ihren AWS Zugriffsschlüssel und Ihr Sitzungstoken zu aktualisieren.

Um Ihren AWS Zugriffsschlüssel und Ihr Sitzungstoken zu aktualisieren
  1. Stellen Sie sicher, dass Sie das AWS ZugangsportalURL, den Benutzernamen und das Passwort für den Benutzer haben, den Sie verwenden, um das EKS Amazon-Tutorial abzuschließen (codecatalyst-eks-user). Sie sollten diese Elemente konfiguriert haben, als Sie das Tutorial abgeschlossen Schritt 1: Richten Sie Ihren Entwicklungscomputer ein haben.

    Anmerkung

    Wenn Sie diese Informationen nicht haben, gehen Sie zur codecatalyst-eks-user Detailseite in IAM Identity Center und wählen Sie Passwort zurücksetzen, Einmalpasswort generieren [...] und klicken Sie erneut auf Passwort zurücksetzen, um die Informationen auf dem Bildschirm anzuzeigen.

  2. Führen Sie eine der folgenden Aktionen aus:

    • Fügen Sie das AWS Zugangsportal URL in die Adressleiste Ihres Browsers ein.

      Oder

    • Aktualisieren Sie die AWS Access-Portalseite, falls sie bereits geladen ist.

  3. Melden Sie sich mit dem Benutzernamen und dem Passwort codecatalyst-eks-user von an, falls Sie noch nicht angemeldet sind.

  4. Wählen Sie AWS-Kontound wählen Sie dann den Namen des Benutzers, AWS-Konto dem Sie den codecatalyst-eks-user Benutzer und den Berechtigungssatz zugewiesen haben.

  5. Wählen Sie neben dem Namen des Berechtigungssatzes (codecatalyst-eks-permission-set) die Option Befehlszeilenzugriff oder programmatischer Zugriff aus.

  6. Kopieren Sie die Befehle in der Mitte der Seite. Sie sehen etwa wie folgt aus:

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="session-token"

    ... wo session-token ist eine lange zufällige Zeichenfolge.

  7. Fügen Sie die Befehle in Ihre Terminal-Eingabeaufforderung auf Ihrem Entwicklungscomputer ein und drücken Sie die Eingabetaste.

    Die neuen Schlüssel und das Sitzungstoken werden geladen.

    Sie haben jetzt Ihre Anmeldeinformationen aktualisiert. Die kubectl Befehle AWS CLIeksctl, und sollten jetzt funktionieren.

Wie behebe ich die Fehler „Es konnte keine Verbindung zum Server hergestellt werden“?

Problem: Während Sie das unter beschriebene Tutorial durcharbeitenTutorial: Eine Anwendung auf Amazon bereitstellen EKS, wird im Terminalfenster Ihres Entwicklungscomputers eine Fehlermeldung ähnlich der folgenden angezeigt:

Unable to connect to the server: dial tcp: lookup long-string.gr7.us-west-2.eks.amazonaws.com on 1.2.3.4:5: no such host

Mögliche Lösungen:

Dieser Fehler weist normalerweise darauf hin, dass die Anmeldeinformationen, die das kubectl Hilfsprogramm für die Verbindung zu Ihrem EKS Amazon-Cluster verwendet, abgelaufen sind. Um das Problem zu lösen, aktualisieren Sie die Anmeldeinformationen, indem Sie an der Terminal-Eingabeaufforderung den folgenden Befehl eingeben:

aws eks update-kubeconfig --name codecatalyst-eks-cluster --region us-west-2

Wobei gilt:

  • codecatalyst-eks-cluster wird durch den Namen Ihres EKS Amazon-Clusters ersetzt.

  • us-west-2 wird durch die AWS Region ersetzt, in der Ihr Cluster bereitgestellt wird.

Warum fehlen CodeDeploy Felder im visuellen Editor?

Problem: Sie verwenden eine ECS Aktion „Deploy to Amazon“ und sehen die CodeDeploy Felder nicht, z. B. CodeDeploy AppSpecim visuellen Editor des Workflows. Dieses Problem kann auftreten, weil der ECS Amazon-Service, den Sie im Feld Service angegeben haben, nicht für Blau/Grün-Bereitstellungen konfiguriert ist.

Mögliche Lösungen:

  • Wählen Sie auf der Registerkarte Konfiguration der ECS Aktion Deploy to Amazon einen anderen ECS Amazon-Service aus. Weitere Informationen finden Sie unter Bereitstellung bei Amazon ECS mit einem Workflow.

  • Konfigurieren Sie den ausgewählten ECS Amazon-Service für blaue/grüne Bereitstellungen. Weitere Informationen zur Konfiguration von Blue/Green-Bereitstellungen finden Sie unter Blue/Green-Bereitstellung mit CodeDeploy im Amazon Elastic Container Service Developer Guide.

Wie behebe IAM ich Funktionsfehler?

Problem: Sie verwenden eine Aktion „AWS CloudFormation Stack bereitstellen“ und das sehen Sie ##[error] requires capabilities: [capability-name] in den Protokollen Ihrer Aktion „ AWS CloudFormation Stack bereitstellen“.

Mögliche Lösungen: Gehen Sie wie folgt vor, um die Funktion zur Workflow-Definitionsdatei hinzuzufügen. Weitere Informationen zu IAM Funktionen finden Sie im IAMBenutzerhandbuch unter Bestätigung von IAM Ressourcen in AWS CloudFormation Vorlagen.

Visual
So fügen Sie eine IAM Funktion mit dem Visual Editor hinzu
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

  5. Wählen Sie Edit (Bearbeiten) aus.

  6. Wählen Sie Visual.

  7. Wählen Sie im Workflow-Diagramm die Aktion AWS CloudFormation Stack bereitstellen aus.

  8. Wählen Sie die Registerkarte Konfiguration aus.

  9. Wählen Sie unten Erweitert — optional aus.

  10. Aktivieren Sie in der Dropdownliste Funktionen das Kontrollkästchen neben der in der Fehlermeldung genannten Funktion. Wenn die Funktion in der Liste nicht verfügbar ist, fügen Sie sie mit dem YAML Editor hinzu.

  11. (Optional) Wählen Sie „Validieren“, um den YAML Workflow-Code vor dem Commit zu überprüfen.

  12. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

  13. Wenn eine neue Workflow-Ausführung nicht automatisch gestartet wird, führen Sie den Workflow manuell aus, um zu überprüfen, ob der Fehler durch die Änderungen behoben wird. Weitere Informationen zum manuellen Ausführen eines Workflows finden Sie unterManuelles Starten einer Workflow-Ausführung.

YAML
So fügen Sie eine IAM Funktion mit dem YAML Editor hinzu
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

  5. Wählen Sie Edit (Bearbeiten) aus.

  6. Wählen Sie YAML.

  7. Fügen Sie in der Aktion AWS CloudFormation Stack bereitstellen eine capabilities Eigenschaft wie folgt hinzu:

    DeployCloudFormationStack: Configuration: capabilities: capability-name

    Ersetzen capability-name wobei der Name der IAM Funktion in der Fehlermeldung angezeigt wird. Verwenden Sie Kommas und keine Leerzeichen, um mehrere Funktionen aufzulisten. Weitere Informationen finden Sie in der Beschreibung der capabilities Immobilie imAktion „ AWS CloudFormation Stack bereitstellen“ YAML.

  8. (Optional) Wählen Sie „Validieren“, um den YAML Workflow-Code vor dem Commit zu überprüfen.

  9. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

  10. Wenn eine neue Workflow-Ausführung nicht automatisch gestartet wird, führen Sie den Workflow manuell aus, um zu überprüfen, ob der Fehler durch die Änderungen behoben wird. Weitere Informationen zum manuellen Ausführen eines Workflows finden Sie unterManuelles Starten einer Workflow-Ausführung.

Wie behebe ich „npm install“ -Fehler?

Problem: Ihre AWS CDK Bereitstellungs- oder AWS CDK Bootstrap-Aktion schlägt mit einem Fehler fehl. npm install Dieser Fehler kann auftreten, weil Sie Ihre AWS CDK App-Abhängigkeiten in einer NPM-Registrierung (Private Node Package Manager) speichern, auf die die Aktion nicht zugreifen kann.

Mögliche Lösungen: Verwenden Sie die folgenden Anweisungen, um die cdk.json Datei Ihrer AWS CDK App mit zusätzlichen Registrierungs- und Authentifizierungsinformationen zu aktualisieren.

Bevor Sie beginnen
  1. Erstellen Sie Geheimnisse für Ihre Authentifizierungsinformationen. Sie werden in der cdk.json Datei auf diese Geheimnisse verweisen, anstatt die Entsprechungen im Klartext anzugeben. Um die Geheimnisse zu erstellen:

    1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

    2. Wählen Sie Ihr Projekt.

    3. Wählen Sie im Navigationsbereich CI/CD und dann Secrets aus.

    4. Erstellen Sie zwei Geheimnisse mit den folgenden Eigenschaften:

      Erstes Geheimnis Zweites Geheimnis

      Name (Name: npmUsername

      Wert: npm-usernamewobei npm-username ist der Benutzername, der zur Authentifizierung bei Ihrer privaten npm-Registrierung verwendet wird.

      (Optional) Beschreibung: The username used to authenticate to the private npm registry.

      Name (Name: npmAuthToken

      Wert: npm-auth-tokenwobei npm-auth-token ist das Zugriffstoken, das zur Authentifizierung bei Ihrer privaten npm-Registrierung verwendet wird. Weitere Informationen zu NPM-Zugriffstoken finden Sie unter Über Zugriffstoken in der npm-Dokumentation.

      (Optional) Beschreibung: The access token used to authenticate to the private npm registry.

      Weitere Hinweise zu Geheimnissen finden Sie unterDaten mithilfe von Geheimnissen maskieren.

  2. Fügen Sie die Geheimnisse als Umgebungsvariablen zu Ihrer AWS CDK Aktion hinzu. Die Aktion ersetzt die Variablen durch echte Werte, wenn sie ausgeführt wird. Um die Geheimnisse hinzuzufügen:

    1. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

    2. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

    3. Wählen Sie Edit (Bearbeiten) aus.

    4. Wählen Sie Visual.

    5. Wählen Sie im Workflow-Diagramm Ihre AWS CDK Aktion aus.

    6. Wählen Sie die Registerkarte Eingaben.

    7. Fügen Sie zwei Variablen mit den folgenden Eigenschaften hinzu:

      Erste Variable Zweite Variable

      Name (Name: NPMUSER

      Value (Wert): ${Secrets.npmUsername}

      Name (Name: NPMTOKEN

      Value (Wert): ${Secrets.npmAuthToken}

      Sie haben jetzt zwei Variablen, die Verweise auf Geheimnisse enthalten.

    Der YAML Code Ihrer Workflow-Definitionsdatei sollte etwa wie folgt aussehen:

    Anmerkung

    Das folgende Codebeispiel stammt aus einer AWS CDK Bootstrap-Aktion. Eine AWS CDK Bereitstellungsaktion sieht ähnlich aus.

    Name: CDK_Bootstrap_Action SchemaVersion: 1.0 Actions: CDKBootstrapAction: Identifier: aws/cdk-bootstrap@v2 Inputs: Variables: - Name: NPMUSER Value: ${Secrets.npmUsername} - Name: NPMTOKEN Value: ${Secrets.npmAuthToken} Sources: - WorkflowSource Environment: Name: Dev2 Connections: - Name: account-connection Role: codecatalystAdmin Configuration: Parameters: Region: "us-east-2"

    Sie sind jetzt bereit, die NPMTOKEN Variablen NPMUSER und in Ihrer cdk.json Datei zu verwenden. Fahren Sie mit dem nächsten Schritt fort.

Um deine cdk.json-Datei zu aktualisieren
  1. Wechseln Sie in das Stammverzeichnis Ihres AWS CDK Projekts und öffnen Sie die cdk.json Datei.

  2. Suchen Sie die "app": Eigenschaft und ändern Sie sie so, dass sie den Code enthält, der unter angezeigt wird red italics:

    Anmerkung

    Der folgende Beispielcode stammt aus einem TypeScript Projekt. Wenn Sie ein JavaScript Projekt verwenden, sieht der Code ähnlich, wenn auch nicht identisch aus.

    { "app": "npm set registry=https://your-registry/folder/CDK-package/ --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:always-auth=true --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:_authToken=\"${NPMUSER}\":\"${NPMTOKEN}\" && npm install && npx ts-node --prefer-ts-exts bin/hello-cdk.ts|js", "watch": { "include": [ "**" ], "exclude": [ "README.md", "cdk*.json", "**/*.d.ts", "**/*.js", "tsconfig.json", "package*.json", ...
  3. In dem hervorgehobenen Code in red italics, ersetzen Sie:

    • your-registry/folder/CDK-package/ mit dem Pfad zu Ihren AWS CDK Projektabhängigkeiten in Ihrer privaten Registrierung.

    • hello-cdk.ts|.js mit dem Namen Ihrer Einstiegspunktdatei. Je nachdem, welche Sprache Sie verwenden, kann es sich dabei um eine .ts .js (TypeScriptJavaScript) oder () -Datei handeln.

      Anmerkung

      Die Aktion ersetzt die NPMUSER and NPMTOKEN Variablen mit dem NPM-Benutzernamen und dem Zugriffstoken, die Sie in Secrets angegeben haben.

  4. Speichern Sie Ihre cdk.json-Datei.

  5. Führen Sie die Aktion erneut manuell aus, um festzustellen, ob der Fehler durch die Änderungen behoben wird. Weitere Informationen zum manuellen Ausführen von Aktionen finden Sie unterManuelles Starten einer Workflow-Ausführung.

Warum haben mehrere Workflows denselben Namen?

Workflows werden pro Zweig pro Repository gespeichert. Zwei verschiedene Workflows können denselben Namen haben, wenn sie in verschiedenen Branchen existieren. Auf der Workflow-Seite können Sie Workflows mit demselben Namen anhand des Branchennamens unterscheiden. Weitere Informationen finden Sie unter Organisation Ihrer Quellcode-Arbeit mit Filialen in Amazon CodeCatalyst.

Zweig „Workflow“

Kann ich meine Workflow-Definitionsdateien in einem anderen Ordner speichern?

Nein, Sie müssen alle Workflow-Definitionsdateien in dem .codecatalyst/workflows Ordner oder in Unterordnern dieses Ordners speichern. Wenn Sie ein Mono-Repo mit mehreren logischen Projekten verwenden, platzieren Sie alle Ihre Workflow-Definitionsdateien in dem .codecatalyst/workflows Ordner oder einem seiner Unterordner und verwenden Sie dann das Feld Geänderte Dateien (visueller Editor) oder die FilesChanged Eigenschaft (YAMLEditor) in einem Trigger, um den Workflow automatisch an einem angegebenen Projektpfad auszulösen. Weitere Informationen erhalten Sie unter Hinzufügen von Triggern zu Workflows und Beispiel: Ein Trigger mit einem Push, Branches und Dateien.

Wie füge ich meinem Workflow nacheinander Aktionen hinzu?

Wenn Sie Ihrem Workflow eine Aktion hinzufügen, hat diese standardmäßig keine Abhängigkeiten und wird parallel zu anderen Aktionen ausgeführt.

Wenn Sie Aktionen der Reihe nach anordnen möchten, können Sie eine Abhängigkeit von einer anderen Aktion festlegen, indem Sie das DependsOn Feld festlegen. Sie können eine Aktion auch so konfigurieren, dass sie Artefakte oder Variablen verwendet, die Ergebnisse anderer Aktionen sind. Weitere Informationen finden Sie unter Aktionen sequenzieren.

Warum wird mein Workflow erfolgreich validiert, schlägt aber zur Laufzeit fehl?

Wenn Sie Ihren Workflow mit der Validate Schaltfläche validiert haben, Ihr Workflow aber trotzdem fehlgeschlagen ist, kann das an einer Einschränkung des Validators liegen.

Fehler in Bezug auf eine CodeCatalyst Ressource wie Geheimnisse, Umgebungen oder Flotten in der Workflow-Konfiguration werden bei einem Commit nicht registriert. Wenn ungültige Verweise verwendet werden, wird der Fehler nur erkannt, wenn ein Workflow ausgeführt wird. Ebenso werden Fehler in Ihrer Aktionskonfiguration, wie z. B. das Fehlen eines erforderlichen Felds oder Tippfehler in den Aktionsattributen, erst erkannt, wenn der Workflow ausgeführt wird. Weitere Informationen finden Sie unter Einen Workflow erstellen.

Die automatische Erkennung erkennt keine Berichte für meine Aktion

Problem: Ich habe Autodiscovery für eine Aktion konfiguriert, die Tests ausführt, aber es werden keine Berichte von CodeCatalyst erkannt.

Mögliche Lösungen: Dies kann durch eine Reihe von Problemen verursacht werden. Probieren Sie eine oder mehrere der folgenden Lösungen aus:

  • Stellen Sie sicher, dass das zum Ausführen von Tests verwendete Tool Ausgaben in einem der Formate erzeugt, die ich CodeCatalyst verstehe. Wenn Sie beispielsweise zulassen CodeCatalyst möchten, dass Berichte pytest zur Test- und Codeabdeckung erkannt werden, geben Sie die folgenden Argumente an:

    --junitxml=test_results.xml --cov-report xml:test_coverage.xml

    Weitere Informationen finden Sie unter Typen von Qualitätsberichten.

  • Stellen Sie sicher, dass die Dateierweiterungen für die Ausgaben dem ausgewählten Format entsprechen. Wenn Sie beispielsweise so konfigurierenpytest, dass Ergebnisse im JUnitXML Format angezeigt werden, überprüfen Sie, ob die .xml Dateierweiterung Weitere Informationen finden Sie unter Typen von Qualitätsberichten.

  • Stellen Sie sicher, dass IncludePaths es so konfiguriert ist, dass es das gesamte Dateisystem (**/*) einschließt, es sei denn, Sie schließen absichtlich bestimmte Ordner aus. Achten Sie auch darauf, dass ExcludePaths Sie keine Verzeichnisse ausschließen, in denen sich Ihre Berichte voraussichtlich befinden werden.

  • Wenn Sie einen Bericht manuell für die Verwendung einer bestimmten Ausgabedatei konfiguriert haben, wird er von der automatischen Erkennung ausgeschlossen. Weitere Informationen finden Sie unter YAMLBeispiel für Qualitätsberichte.

  • Bei der automatischen Erkennung werden möglicherweise keine Berichte gefunden, da die Aktion fehlgeschlagen ist, bevor Ausgaben generiert wurden. Beispielsweise ist der Build möglicherweise fehlgeschlagen, bevor Komponententests ausgeführt wurden.

Meine Aktion schlägt bei automatisch erkannten Berichten fehl, nachdem ich Erfolgskriterien konfiguriert habe

Problem: Wenn ich die automatische Erkennung aktiviere und Erfolgskriterien konfiguriere, erfüllen einige Berichte die Erfolgskriterien nicht und die Aktion schlägt daher fehl.

Mögliche Lösungen: Probieren Sie eine oder mehrere der folgenden Lösungen aus, um dieses Problem zu beheben:

  • Ändern Sie BerichteExcludePaths, an denen Sie nicht interessiert sind, IncludePaths oder schließen Sie sie aus.

  • Aktualisieren Sie die Erfolgskriterien, damit alle Berichte erfolgreich sind. Wenn beispielsweise zwei Berichte gefunden wurden, von denen einer eine Leitungsabdeckung von 50% und der andere von 70% aufweist, passen Sie die Mindestleitungsabdeckung auf 50% an. Weitere Informationen finden Sie unter Erfolgskriterien

  • Verwandeln Sie den fehlgeschlagenen Bericht in einen manuell konfigurierten Bericht. Auf diese Weise können Sie verschiedene Erfolgskriterien für diesen bestimmten Bericht konfigurieren. Weitere Informationen finden Sie unter Erfolgskriterien für Berichte konfigurieren.

Autodiscovery generiert Berichte, die ich nicht haben möchte

Problem: Wenn ich die automatische Erkennung aktiviere, werden Berichte generiert, die ich nicht möchte. CodeCatalyst Generiert beispielsweise Berichte zur Codeabdeckung für Dateien, die in den Abhängigkeiten meiner Anwendung enthalten sind, die in node_modules gespeichert sind.

Mögliche Lösungen: Sie können die ExcludePaths Konfiguration so anpassen, dass unerwünschte Dateien ausgeschlossen werden. Um beispielsweise auszuschließennode_modules, fügen Sie hinzunode_modules/**/*. Weitere Informationen finden Sie unter Pfade einschließen/ausschließen.

Auto-Discovery generiert viele kleine Berichte für ein einzelnes Test-Framework

Problem: Bei der Verwendung bestimmter Frameworks für Test- und Codeabdeckungsberichte habe ich festgestellt, dass Autodiscovery eine große Anzahl von Berichten generiert. Wenn Sie beispielsweise das Maven Surefire-Plugin verwenden, erstellt die automatische Erkennung für jede Testklasse einen anderen Bericht.

Mögliche Korrekturen: Ihr Framework kann möglicherweise Ausgaben in einer einzigen Datei zusammenfassen. Wenn Sie beispielsweise das Maven Surefire Plugin verwenden, können Sie es verwenden, um die Dateien npx junit-merge manuell zu aggregieren. Der vollständige Ausdruck könnte so aussehen:

mvn test; cd test-package-path/surefire-reports && npx junit-merge -d ./ && rm *Test.xml

Die unter CI/CD aufgeführten Workflows stimmen nicht mit denen im Quell-Repository überein

Problem: Die auf der Seite CI/CD, Workflows angezeigten Workflows stimmen nicht mit denen im ~/.codecatalyst/workflows/ Ordner in Ihrem Quell-Repository überein. Möglicherweise sehen Sie die folgenden Diskrepanzen:

  • Ein Workflow wird auf der Workflow-Seite angezeigt, aber eine entsprechende Workflow-Definitionsdatei ist in Ihrem Quell-Repository nicht vorhanden.

  • In Ihrem Quell-Repository ist eine Workflow-Definitionsdatei vorhanden, aber ein entsprechender Workflow wird nicht auf der Workflow-Seite angezeigt.

  • Ein Workflow ist sowohl im Quell-Repository als auch auf der Workflow-Seite vorhanden, aber die beiden sind unterschiedlich.

Dieses Problem kann auftreten, wenn die Workflow-Seite nicht aktualisiert werden konnte oder wenn ein Workflow-Kontingent überschritten wurde.

Mögliche Lösungen:

  • Warten Sie. Normalerweise müssen Sie nach einem Commit an die Quelle zwei oder drei Sekunden warten, bis Sie die Änderung auf der Workflow-Seite sehen.

  • Wenn Sie ein Workflow-Kontingent überschritten haben, gehen Sie wie folgt vor:

    Anmerkung

    Um festzustellen, ob ein Workflow-Kontingent überschritten wurdeKontingente für Workflows in CodeCatalyst, überprüfen Sie die dokumentierten Kontingente und vergleichen Sie sie mit den Workflows in Ihrem Quell-Repository oder auf der Workflow-Seite. Es gibt keine Fehlermeldung, die darauf hinweist, dass ein Kontingent überschritten wurde. Sie müssen es also selbst untersuchen.

    • Wenn Sie die maximale Anzahl von Workflows pro Speicherkontingent überschritten haben, löschen Sie einige Workflows und führen Sie dann einen Test-Commit anhand der Workflow-Definitionsdatei durch. Ein Beispiel für ein Test-Commit könnte darin bestehen, der Datei ein Leerzeichen hinzuzufügen.

    • Wenn Sie das Kontingent für die maximale Größe der Workflow-Definitionsdatei überschritten haben, ändern Sie die Länge der Workflow-Definitionsdatei.

    • Wenn Sie die maximale Anzahl von Workflow-Dateien, die in einer einzelnen Quelle verarbeitet werden, überschritten haben, führen Sie mehrere Test-Commits durch. Ändern Sie weniger als die maximale Anzahl von Workflows pro Commit.

Ich kann keine Workflows erstellen oder aktualisieren

Problem: Ich möchte einen Workflow erstellen oder aktualisieren, erhalte aber eine Fehlermeldung, wenn ich versuche, die Änderung zu übernehmen.

Mögliche Lösungen: Abhängig von Ihrer Rolle im Projekt oder Space sind Sie möglicherweise nicht berechtigt, Code in Quell-Repositorys im Projekt zu pushen. Die YAML Dateien für Workflows werden in Repositorys gespeichert. Weitere Informationen finden Sie unter Workflow-Definitionsdateien. Die Rollen „Space-Administrator“, „Projektadministrator“ und „Mitwirkender“ sind alle berechtigt, Code in Repositorys in einem Projekt zu übertragen und dort per Push zu speichern.

Wenn Sie die Rolle Mitwirkender haben, aber keine Änderungen am Workflow YAML in einem bestimmten Zweig erstellen oder übernehmen können, ist möglicherweise eine Branch-Regel für diesen Branch konfiguriert, die verhindert, dass Benutzer mit dieser Rolle Code in diesen bestimmten Branch übertragen. Versuchen Sie, einen Workflow in einem anderen Zweig zu erstellen oder Ihre Änderungen an einen anderen Zweig zu übertragen. Weitere Informationen finden Sie unter Zulässige Aktionen für einen Branch mit Branch-Regeln verwalten.