microcks / microcks/microcks-cli

CI/CD Pipeline False Positives: `import-dir` Exits with Code 0 on Failures

Aperta Adatta ai principianti
#473 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

stale
Lingua principale
Go
Stelle
52
Fork
68
Merge medio
6h 54m
PR unite (30g)
10

Descrizione

Describe the bug
Description

The import-dir command scans a directory and attempts to import all matching files. If one or more files fail to import, it records the failure in ImportResult.FailedCount and prints an error message. However, the command runner does not check the failed count to return a non-zero exit code.

Impact

In CI/CD environments (GitHub Actions, Tekton, GitLab CI), the CLI exits with status 0, indicating success even if all API specifications failed to import. This hides deployment failures.

Code Reference
  • cmd/importDir.go
Diagram
graph TD
    A[Start import-dir] --> B[Scan Directory]
    B --> C[Import File 1: Success]
    B --> D[Import File 2: FAILED]
    C & D --> E[Display Results Summary]
    E --> F["Exit Status Code 0 (Success)"]
    F --> G["CI/CD pipeline reports green/success despite failures"]
Steps to Reproduce
  1. Run microcks import-dir ./specs where at least one spec has invalid content.
  2. The console displays ✗ Failed: ....
  3. Check the exit code of the process (echo $? or $LASTEXITCODE in PowerShell). It returns 0.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia in cmd/importDir.go, intorno alle righe 162-200, e segui come viene gestito ImportResult.FailedCount dopo la stampa del riepilogo dell'importazione. Riproduci il problema con una specifica API non valida, quindi verifica che import-dir restituisca uno stato del processo diverso da zero quando vengono registrati degli errori, mentre le importazioni riuscite mantengono lo stato previsto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
go
Ambito
ci-cd, cli
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Attiva
Chiarezza
Specificata chiaramente
Idoneità per principianti
78/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.