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.
Themen
- Wie behebe ich die Meldung „Der Workflow ist inaktiv“?
- Wie behebe ich „Die Workflow-Definition hat n Fehler“ Fehler?
- Wie behebe ich die Fehler „Anmeldeinformationen konnten nicht gefunden werden“ und ExpiredToken „“?
- Wie behebe ich die Fehler „Es konnte keine Verbindung zum Server hergestellt werden“?
- Warum fehlen CodeDeploy Felder im visuellen Editor?
- Wie behebe IAM ich Funktionsfehler?
- Wie behebe ich „npm install“ -Fehler?
- Warum haben mehrere Workflows denselben Namen?
- Kann ich meine Workflow-Definitionsdateien in einem anderen Ordner speichern?
- Wie füge ich meinem Workflow nacheinander Aktionen hinzu?
- Warum wird mein Workflow erfolgreich validiert, schlägt aber zur Laufzeit fehl?
- Die automatische Erkennung erkennt keine Berichte für meine Aktion
- Meine Aktion schlägt bei automatisch erkannten Berichten fehl, nachdem ich Erfolgskriterien konfiguriert habe
- Autodiscovery generiert Berichte, die ich nicht haben möchte
- Auto-Discovery generiert viele kleine Berichte für ein einzelnes Test-Framework
- Die unter CI/CD aufgeführten Workflows stimmen nicht mit denen im Quell-Repository überein
- Ich kann keine Workflows erstellen oder aktualisieren
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 demTriggers
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 (wiemain
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
-
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. -
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.
-
-
Melden Sie sich mit dem Benutzernamen und dem Passwort
codecatalyst-eks-user
von an, falls Sie noch nicht angemeldet sind. -
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. -
Wählen Sie neben dem Namen des Berechtigungssatzes (
codecatalyst-eks-permission-set
) die Option Befehlszeilenzugriff oder programmatischer Zugriff aus. -
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. -
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
--regionus-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:
[
in den Protokollen Ihrer Aktion „ AWS CloudFormation
Stack bereitstellen“.capability-name
]
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.
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
-
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:Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/
. -
Wählen Sie Ihr Projekt.
-
Wählen Sie im Navigationsbereich CI/CD und dann Secrets aus.
-
Erstellen Sie zwei Geheimnisse mit den folgenden Eigenschaften:
Erstes Geheimnis Zweites Geheimnis Name (Name:
npmUsername
Wert:
npm-username
wobeinpm-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-token
wobeinpm-auth-token
ist das Zugriffstoken, das zur Authentifizierung bei Ihrer privaten npm-Registrierung verwendet wird. Weitere Informationen zu NPM-Zugriffstoken finden Sie unter Über Zugriffstokenin 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.
-
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:
Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.
-
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.
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie Visual.
-
Wählen Sie im Workflow-Diagramm Ihre AWS CDK Aktion aus.
-
Wählen Sie die Registerkarte Eingaben.
-
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
VariablenNPMUSER
und in Ihrercdk.json
Datei zu verwenden. Fahren Sie mit dem nächsten Schritt fort.
Um deine cdk.json-Datei zu aktualisieren
-
Wechseln Sie in das Stammverzeichnis Ihres AWS CDK Projekts und öffnen Sie die
cdk.json
Datei. -
Suchen Sie die
"app":
Eigenschaft und ändern Sie sie so, dass sie den Code enthält, der unter angezeigt wirdred 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", ... -
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
andNPMTOKEN
Variablen mit dem NPM-Benutzernamen und dem Zugriffstoken, die Sie in Secrets angegeben haben.
-
-
Speichern Sie Ihre
cdk.json
-Datei. -
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.
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 konfigurieren
pytest
, dass Ergebnisse imJUnitXML
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, dassExcludePaths
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 Berichte
ExcludePaths
, 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
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.