[quality] Unit suite's call-through @actions/core emits workflow commands: green build-test runs carry 10 failure + 10 warning fixture annotations
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #605 di @hivecommons-hive — integrata
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, typescript
Direzione di ricerca
Leggi la configurazione condivisa di Vitest e la configurazione di Vitest in cui sono configurati setupFiles e mockReset. Aggiungi __tests__/setupQuietActionsCore.ts e registralo lì, mantenendo gli spy di @actions/core e reimpostando le funzioni di output elencate a no-op prima di ogni test. Esegui npx vitest run; il lavoro è completato quando la suite non emette righe di comandi workflow e l’output della fixture non crea più annotazioni del runner.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Finding
The suite's shared vitest setup file mocks @actions/core with vi.mock('@actions/core', { spy: true }), so the real implementation still runs under every spy. Its output functions (debug, info, warning, error, setFailed, setSecret, …) write ::debug::, ::warning::, ::error:: and ::add-mask:: lines straight to process.stdout, which bypasses vitest's console capture. Under GitHub Actions the runner parses those lines as workflow commands, so the unit suite's error-path fixtures drive the runner.
Evidence from a green run (build-test, job 121828647038, head 6bac9cc of #591, conclusion success), Run npm run test:coverage step:
| what the runner saw | count |
|---|---|
| step log lines | 16,255 |
##[debug] (from ::debug::; rendered because step debug was on) |
3,208 |
##[warning] (from core.warning) |
61 |
##[error] (from core.error / core.setFailed) |
18 |
::add-mask:: applied (meow's secret-key fixture, redacted for the rest of the log) |
1 |
GET /repos/cncf/prow-github-actions/check-runs/121828647038/annotations lists 10 failure and 10 warning annotations (the runner's per-step cap) on a passing run, all test fixtures: Cannot apply the lgtm label because Error: Codertocat is not a org member or collaborator, TypeError: error handling issue comment: …, encountered unexpected error: status=500, message=Internal Server Error, you cannot LGTM your own PR., each attributed to .github:<line>. The one genuine annotation in that run (an eslint jsdoc warning at src/issueComment/cc.ts:81) sits among them. core.setFailed also sets process.exitCode = 1 inside the vitest worker.
Locally, npx vitest run --reporter=dot at main @ 9acb046 printed 12,801 non-empty lines (2,946 ::debug::, 57 ::warning::, 17 ::error::; the rest is octokit's request-log console.error, which the default reporter already hides). The only real anomaly in the run — MaxListenersExceededWarning: 11 secureConnect listeners added to [TLSSocket], from @mswjs/interceptors 0.45.6 TlsSocketController.claim during meow.test.ts — is invisible among them and had not been noticed.
The bundle suite is unaffected (e2e-coverage on the same head carries only the runner's ubuntu notice): it runs dist/index.js in a child process and captures its output.
Recommendation
Keep the spies (tests assert core.warning / core.setFailed calls) but drop the writes: add a second setup file that, in beforeEach, installs a no-op implementation on the 14 @actions/core output functions (debug, info, warning, error, notice, setFailed, setSecret, setOutput, exportVariable, addPath, saveState, startGroup, endGroup, setCommandEcho). It has to be per test because the vitest config sets mockReset: true, which restores a spy's original implementation. getInput and the rest stay real.
Decision taken by hive: a new __tests__/setupQuietActionsCore.ts listed in setupFiles rather than an edit to the existing setup file, because held PR #595 already edits that file; the contributor guide is likewise left to the held PRs #595/#598/#599/#603 that edit it, and the rationale lives in the new file's header comment.
-
__tests__/setupQuietActionsCore.ts+ itssetupFilesentry in the vitest config;npx vitest runprints no::line andbuild-testruns carry no fixture annotations
Priority
- Impact: medium — every PR's Checks tab shows 20 fake failure/warning annotations and the test step log is dominated by fixture output, so a real
::error::or runtime warning is lost - Effort: low — one new 30-line setup file and one config line; 191 files / 2,473 tests pass unchanged with it
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: b7ae47a
— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88
- Lingua principale
- TypeScript
- Stelle
- 135
- Fork
- 24
- Merge medio
- 1g 6h
- PR unite (30g)
- 232
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cncf/prow-github-actions
-
agent/quality kind/cleanup stage/045-needs-decision testing
Difficoltà 3/5 1-2 giorni Idoneità per principianti 15/100
cncf/prow-github-actions#672 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[quality] chart: CronJob name exceeds the 52-character API limit for release names of 32+ characters; no test pins resource-name lengthForse già presa @mrbobbytables l’ha presa 2 giorni fa. Apertaagent/quality kind/cleanup stage/040-covered-by-pr testing
Difficoltà 3/5 Mezza giornata Idoneità per principianti 50/100
cncf/prow-github-actions#667 ·
I maintainer di solito rispondono entro 1 giorno
-
🐝 Hive Advisory ReportApertahive/advisory kind/cleanup
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
cncf/prow-github-actions#170 · 9 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cncf/prow-github-actions
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 2 giorni
-
reproduced
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
anomalyco/opencode#62052 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
strapi/design-system#2084 ·
I maintainer di solito rispondono entro 3 giorni
-
Report: &TV InternationalApertacheck:passed streams:remove
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
OAuth documentation for GET /api/v2/users/me/ appears inconsistent with required global read scopeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno