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 Erstellen, Testen und Bereitstellen mit Workflows in CodeCatalyst.

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 in diesem Zweig startenmain, wird CodeCatalyst der Workflow in dem Branch außer Betrieb genommen 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 mit Triggern.

Wie behebe ich den Fehler „Workflow-Definition enthält keine 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 der YAML-Workflow-Definition oder in der Dokumentation Ihrer Aktion, die mit dem Link von verknüpft ist. Aktion zu einem CodeCatalyst 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 unter. Richtlinien und Konventionen zur Syntax Informationen zur korrekten Groß- und Kleinschreibung der einzelnen Eigenschaften finden Sie in der YAML-Workflow-Definition oder in der Dokumentation zu Ihrer Aktion, die mit dem Link von verknüpft istAktion zu einem CodeCatalyst 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 so konfigurieren, dass sie von anderen Aktionen abhängen.

  • 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 CodeCatalyst 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, sodass sie von anderen Aktionen verwendet werden kann.

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

Problem: Während der Tutorial: Bereitstellen einer Anwendung in Amazon 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 die URL, den Benutzernamen und das Passwort des AWS Zugriffsportals für den Benutzer haben, den Sie verwenden, um das Amazon EKS-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 Ihnen diese Informationen nicht vorliegen, rufen Sie die codecatalyst-eks-user Detailseite im IAM Identity Center auf 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 die URL des AWS Zugangsportals 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"

    ... wobei Session-Token eine lange zufällige Zeichenfolge ist.

  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: Bereitstellen einer Anwendung in Amazon 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 mit Ihrem Amazon EKS-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-clusterwird durch den Namen Ihres Amazon EKS-Clusters ersetzt.

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

Warum fehlen CodeDeploy Felder im Visual Editor?

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

Mögliche Lösungen:

Wie behebe ich Fehler bei den IAM-Fähigkeiten?

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

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

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 dem Workflow-Namen filtern.

  5. Wählen Sie 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-Code des Workflows 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-Fähigkeit 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 dem Workflow-Namen filtern.

  5. Wählen Sie Bearbeiten aus.

  6. Wählen Sie YAML.

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

    DeployCloudFormationStack: Configuration: capabilities: capability-name

    Ersetzen Sie Capability-Name durch den Namen der IAM-Fähigkeit, der 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 imYAML-Definition für die Aktion „ AWS CloudFormation Stapel bereitstellen“.

  8. (Optional) Wählen Sie „Validieren“, um den YAML-Code des Workflows 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-username, wobei npm-username der Benutzername ist, 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-token, wobei sich das Zugriffstoken npm-auth-tokenbefindet, 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 unterKonfiguration und Verwendung von Geheimnissen in einem Workflow.

  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 dem Workflow-Namen filtern.

    3. Wählen Sie 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@v1 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 rot kursiv gedruckten Code enthält:

    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. Ersetzen Sie in dem rot kursiv markierten Code:

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

    • hello-cdk.ts|.js mit dem Namen Ihrer Einstiegsdatei. Dies kann je nach verwendeter Sprache eine .ts (TypeScript) oder .js (JavaScript) -Datei sein.

      Anmerkung

      Die Aktion ersetzt die Variablen NPMUSER und NPMTOKEN durch den npm-Benutzernamen und das Zugriffstoken, die Sie in Secrets angegeben haben.

  4. Speichern Sie Ihre cdk.json-Datei.

  5. Führen Sie die Aktion manuell erneut 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 speichern. Wenn Sie ein Mono-Repo mit mehreren logischen Projekten verwenden, platzieren Sie alle Ihre Workflow-Definitionsdateien in dem .codecatalyst/workflows Ordner und verwenden Sie dann die FilesChanged Eigenschaft in einem Trigger, um den Workflow an einem angegebenen Projektpfad auszulösen. Weitere Informationen finden Sie unter Automatisches Starten einer Workflow-Ausführung mit Triggern.

Wie füge ich meinem Workflow nacheinander Aktionen hinzu?

Wenn Sie Ihrem Workflow eine Aktion hinzufügen, hat sie 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 so konfigurieren, dass sie von anderen Aktionen abhängen.

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 YAML-Beispiel 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, ü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.

    • Erhöhen Sie die Workflow-Kontingente, indem Sie die Abrechnung für kostenpflichtige Tarife aktivieren. Weitere Informationen finden Sie unter Abrechnung verwalten im CodeCatalyst Amazon-Administratorhandbuch.

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 in einem bestimmten Branch keine Änderungen an Workflow-YAML erstellen oder übernehmen können, ist möglicherweise für diesen Branch eine Branch-Regel konfiguriert, die verhindert, dass Benutzer mit dieser Rolle Code in diesen bestimmten Branch pushen. 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.