-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider not running pre-commit in GitHub actions but instead splitting each pre-commit test in a GitHub action step #264
Comments
Quand tu dis "utiliser les pre-commit dans les test" tu parles de faire tourner pre-commit dans les github actions c'est ça ? |
Oui |
Faire run le même pre-commit en local et en CI est clairement un pattern pour lequel le tool a été designé, au point qu'il existe une GitHub action et un tool écrits par l'auteur pour faire ça
Si je ne me trompe pas, en tournant dans github actions, il ne fait pas les modifications, juste print un diff puis stop la CI (en tout cas, je suis certain qu'il ne fait pas de commit avec les modifs)
Ca veut dire avoir 2 sources de vérité pour ce qu'on veut comme linter. Et potentiellement avoir un commit qui passe en local puis qui fail sur GitHub. |
Personnellement je trouve que ca rend les tests moins lisible. Mais si on decide de quand meme utilise pre-commit dans les tests il faudrait utiliser l'action dédier a ca. Et techniquement c'est pas 2 source de vérité car ce sont le meme tools avec les meme versions qui vont run. Je trouve que la difference est minime dans un cas moins de travail mais moins lisible dans l'autre un peu plus de travail mais plus lisible |
Bien vu, je pensais que c'était le cas mais non. Je vais fix ça
Comment tu fais pour run les mêmes tests avec les mêmes version d'un côté avec le tool pre-commit et de l'autre avec une action par tool ? Genre j'ajoute mypy à mon pre-commit.yaml, comment il se met tout seul dans le github action ? Si on sait résoudre ce problème alors je suis pas contre utiliser cette solution là :) |
mypy run déjà a part. mais prenons l'exemple de black il suffirait d'utiliser |
C'est ce que j'appelle avoir 2 sources de vérité et que j'essaie de limiter
Je préfère éviter la magie. Demain si black (ou mypy ou autre) fait une upgrade et se met à linter des trucs qu'il ne détectait pas avant je n'ai pas envie de la test suite casse. Sinon, le premier dev qui commit après l'upgrade se prend la CI qui fail alors qu'il n'y peut rien. Ou pire, une PR passe les tests, puis l'upgrade sliencieuse arrive puis on merge dans master et c'est master qui fail soudaiement alors que la PR était OK (j'ai déjà eu le coup, c'est pénible). Btw, c'est pour ça que pre-commit refuse (ou fait un gros warning, je sais plus) d'avoir la version == main dans la config.
Les tools qu'on a dans pre-commit ne sont pas dans les requirements, normalement y'a pas de doublon (sinon, indeed, c'est avoir 2 sources de vérité et c'est pénible)
Parce que mypy est trop lent pour tourner dans un pre-commit et surtout, il a besoin de tous les packages installés pour tourner correctement. Ce n'est pas parce qu'il y en a un qui est différent que tout le système est à jeter imo |
Je pense qu'utiliser les pre-commit dans les test ne soit pas quelque chose de tres judicieux surtout que certains hooks modifie les fichier. Il serait plus intéressant de setup les test qu'on veux directement dans le github actions (ex: flake8/balck, etc)
The text was updated successfully, but these errors were encountered: