CI has no lockfile and cannot fail on missing scripts; release skips tests
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- eslint, github-actions, javascript, node.js
- Domaine
- build-system, ci-cd, release, tooling
Piste de recherche
Start with .github/workflows/ci.yml, .github/workflows/release.yml, and package.json; read the workflow definitions and package scripts, then run npm test and npm run lint. Check each suggested fix against the acceptance criteria, including reproducible installs and preventing releases from failing commits. Done when the CI and release workflows enforce the listed checks and the three acceptance criteria pass.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The CI and release workflows have several gaps that make builds non-reproducible and let a release go out from a commit that fails tests.
Where
.github/workflows/ci.yml:9-19.github/workflows/release.yml:3-6,.github/workflows/release.yml:33-37package.json:4,package.json:7-11
Details
- run: npm install
- run: npm run lint --if-present
- run: npm test --if-present -- --ci
- No lockfile is committed and CI uses
npm install, so every run resolves fresh versions inside the caret ranges, for direct and transitive packages. --if-presentturns a deleted or renamed script into a green step.npm run format(prettier --check .) exists but CI never runs it.- There is no coverage script, although
coverage/is already in.gitignore. ci.ymlhas nopermissions:block, so its token scope depends on the repository default.release.ymlpublishes on anyv*tag without running lint or tests.- The fallback release body is built as
"# Release ${TAG}\n\nSee ..."and printed withecho, so the published body contains literal\n\n. TheGITHUB_OUTPUTheredoc uses a fixedEOFdelimiter, which breaks if the notes contain a lineEOF. "lint": "eslint . --ext .js"uses a legacy flag; the flat config already scopes files.package.jsonversion is0.0.0whilev0.1.0is released.
Suggested fix
- Commit
package-lock.json, switch tonpm ci, addcache: npmto setup-node - Drop
--if-present - Add
npm run formatto CI - Add
"coverage": "jest --coverage"withcollectCoverageFrom: ["js/**/*.js"]and print the summary in CI - Add top-level
permissions: contents: readtoci.yml - Make the release job depend on a test job
- Use
printfand a random heredoc delimiter inrelease.yml - Drop
--ext .js; set the package version or state that it is unused
Acceptance criteria
- Two CI runs on the same commit install the same dependency tree
- Removing the
testscript fails CI - A tag on a commit with failing tests does not publish a release
Getting started
- Relevant files:
.github/workflows/ci.yml,.github/workflows/release.yml,package.json - How to run tests:
npm install, thennpm testandnpm run lint - Related docs:
docs/ARCHITECTURE.md,.github/CONTRIBUTING.md
Filed by repo-audit/full-audit at 8a2c86c. Severity: medium. Effort: S. audit-key: quality|.github/workflows/ci.yml|jobs.test
- Langage dominant
- JavaScript
- Étoiles
- 4
- Forks
- 2
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TMHSDigital/Static_Chess
-
enhancement good first issue severity: medium
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
TMHSDigital/Static_Chess#53 ·
-
documentation good first issue severity: low
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
TMHSDigital/Static_Chess#49 ·
-
documentation good first issue severity: low
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
TMHSDigital/Static_Chess#48 ·
-
documentation severity: medium
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
TMHSDigital/Static_Chess#47 ·
-
documentation good first issue severity: low
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
TMHSDigital/Static_Chess#46 ·
Toutes les issues de TMHSDigital/Static_Chess
Issues similaires
-
good first issue tests
Difficulté 1/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Download a leaderboard as CSVOuverteenhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
growilabs/growi#12246 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
TMHSDigital/Free-Game-Dev-Assets#301 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100