codicoop / boilerplate_django

Plantilla pels nous projectes web amb Django.
GNU General Public License v3.0
0 stars 0 forks source link

Automatic `tox -e format` i `tox` #6

Closed nabiu256 closed 2 years ago

nabiu256 commented 2 years ago

Havent implementat el tox i fent proves he notat que és molt fàcil que se'm passi executar les comandes tox -e format i tox abans de fer cada push, amb el que llavors les github actions fallen i haig de fer un commit i push extra abans de fer merge de la branca.

He recordat que l'altre dia vaig descobrir que git té hooks, i he vist que implementar .git/hooks/pre-push amb un

#!/bin/sh
eval "tox -e format"
eval "tox"

permet que git mateix executi aquestes comandes automàticament cada cop que intentis fer push, i si qualsevol de les comandes torna un codi d'error, llavors l'aborta. Crec que seria prou interessant afegir això d'alguna manera a les boilerplates per tal de fer-nos la feina més fàcil, i et volia demanar què en penses.

perepicornell commented 2 years ago

No coneixia això, és xulo, si ho vols provar i funciona bé fantàstic. Els dubtes que em genera son:

Pel que fa al -e format:

Pel que fa al tox:

Encantat de fer proves quan em diguis!

nabiu256 commented 2 years ago

Pel tema de tox -e format, la gràcia és que el hook fa que s'aborti el push en cas que qualsevol part de l'script retorni un codi d'error, cosa que vol dir que si el tox et falla, t'aborta el push i pots veure per terminal quin ha estat el problema, solucionar-ho, i tornar-li a donar push.

Pel que fa al tox, just lo bo és que és una cosa de git, no de github, i per tant efectivament, l'script s'executa a la teva màquina, amb el que és un procés bastant ràpid, molt més que quan ho fa github, que com tu dius tarda moltíssim.

Si vols ara si ens reunim una estona t'ho ensenyo a la meva màquina a veure què et sembla.