Die folgende Tabelle gilt für codecharter analyze. Andere Befehle verwenden
dieselben Nummern mit anderer Bedeutung (zum Beispiel liefert codecharter test
Exit-Code 1 bei fehlgeschlagenen Spec-Fällen und codecharter verify Exit-Code
1 bei erkanntem Drift). Exit-Code 6 (Lizenzfehler) gilt für jeden lizenzpflichtigen Befehl.
codecharter login, codecharter logout und codecharter auth status sind
nicht lizenzpflichtig und liefern nie 6. login endet mit 0 bei einer
abgeschlossenen Anmeldung und mit 1, wenn sie abgelehnt wurde, abgelaufen ist
oder die Credentials nicht gespeichert werden konnten; logout und
auth status enden immer mit 0. Siehe
Browser-Anmeldung.
codecharter coverage hat einen eigenen Satz: 1 unterhalb der Schwelle, 2
fehlgeschlagene oder unvollständige Tests, 3 keine Coverage-Daten, 64 Fehler
in Aufruf oder Umgebung. Vollständig aufgeführt sind sie unter
codecharter coverage.
codecharter graph verwendet einen eigenen, kleineren Satz: 2 für einen
Aufruffehler (einschließlich eines nicht aufgelösten oder mehrdeutigen
Targets) und 3 für eine fehlgeschlagene Analyse, ohne findingsbasierten
Exit-Code, da es nichts zu gaten gibt. Vollständig aufgeführt unter
codecharter graph.
Ein ungültiges globales --workspace (ein Pfad, der nicht existiert, oder
einer, der dem eigenen absoluten Pfad des Befehls widerspricht) ist ein
Aufruffehler des Befehls, dem es mitgegeben wurde: 64 bei coverage und
baseline migrate, 2 bei jedem anderen Befehl. Siehe
Workspace angeben.
codecharter req check verwendet ebenfalls einen eigenen, kleinen Satz: 1
bei jeder Diagnostic der Severity Fehler, 2 für einen Aufruffehler (ein
ungültiger --workspace-Pfad oder ein unbekannter --output-Wert).
Vollständig aufgeführt unter codecharter req check.
| Code | Bedeutung |
|---|---|
0 |
Erfolg. Keine Findings über der --fail-on-Schwelle. |
1 |
Findings über der --fail-on-Schwelle. |
2 |
Aufruf- oder Konfigurationsfehler (zum Beispiel ungültige Flag-Kombinationen, eine fehlende Diff-Datei, keine konfigurierte Regelquelle, ein --rules-Verzeichnis, das nicht existiert, eine defekte Baseline-Datei oder ein fehlendes Lockfile bei konfigurierten Profilen) oder ein nicht aussagekräftiger Lauf: Dem Ergebnis ist nicht zu trauen, egal was es gefunden hat. Stderr nennt jeden Grund mit seinem Code, zum Beispiel [core-library-unresolved] oder [config-lock-drift]. Siehe Laufkontext und Reichweite. |
3 |
Analyse konnte nicht ausgeführt werden. Entweder konnte die Solution nicht geladen werden, oder der Profil-Cache ist unvollständig und das Portal nicht erreichbar. Im zweiten Fall führe codecharter update mit Internetverbindung aus. |
4 |
Lockfile veraltet. Bei konfigurierten Plattform-Profilen weicht der Content-Hash eines Profils von dem ab, was das Portal meldet. Führe codecharter update aus. |
6 |
Lizenzfehler. Lizenzdatei fehlt, ist abgelaufen, manipuliert oder für diese CLI-Version nicht freigegeben. Siehe Lizenzdatei. |
10 |
Konfigurationsdatei strukturell ungültig. .codecharter/config.yml oder .codecharter/config.local.yml enthält fehlerhaftes YAML oder eine ungültige Struktur. Die genaue Fehlermeldung erscheint auf stderr. |
64 |
Deine Lizenz deckt mehr als eine Organisation ab, und keine wurde per org: in .codecharter/config.yml oder der Umgebungsvariable CODECHARTER_ORG gewählt. Siehe Organisation in der CLI wählen. Unabhängig vom 64, das codecharter coverage bei einem Fehler in Aufruf oder Umgebung liefert. |
--fail-on und Exit-Code 1
codecharter analyze MySolution.sln --fail-on error
codecharter analyze MySolution.sln --fail-on warn
codecharter analyze MySolution.sln --fail-on info
| Wert | Exit-Code 1 wenn |
|---|---|
error |
mindestens ein error-Finding |
warn |
mindestens ein warn- oder error-Finding |
info |
mindestens ein Finding überhaupt |
Ohne --fail-on führt jedes Finding zu Exit-Code 1. Mit --fail-on error wird nur bei Findings mit Severity error blockiert.
Beispiele in CI-Shells
GitHub Actions
- name: CodeCharter
run: codecharter analyze MySolution.sln --fail-on error
# Exit-Code 1 macht den Step rot, GitHub stoppt den Job.
Bash mit Exit-Codes auswerten
codecharter analyze MySolution.sln --fail-on error
code=$?
case $code in
0) echo "ok" ;;
1) echo "findings over threshold" ;;
2) echo "usage error, configuration error or inconclusive run (see stderr)" ;;
esac