-
Notifications
You must be signed in to change notification settings - Fork 161
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
Build auto du front avec Travis #2482
Conversation
Donc la question qui tue, maintenant ... Comment est ce qu'on QA ce truc ? :o |
Ca risque effectivement d'être un peu tricky à QA :-° Donc en gros, ce qu'il faut faire:
|
Je suis en train de me dire que la je check que le dernier message de commit. Est-ce que c'est ce qu'on veut ? Ou il faut check dans les message de toutes les commits qui ont été push avec la build ? (via la variable d'environnement |
Je dirais qu'il faut vérifier dans tous les commits de la PR. |
J'ai mal à la tête rien qu'à voir les instructions de QA. Bon, j'y pense, j'y pense, mais j'ai besoin de motivation ^^ (remarque, activer Travis sur mon fork me semble une bonne idée, donc ça peut être l'occaz). |
Il va falloir rebase ici :( |
c567a32
to
d8d0d86
Compare
C'est fait ! Par contre le fail sur les tests ne vient pas de cette PR, et est présent sur d'autres build... |
Ok, je bloque sur
Deux questions:
D'avance merci :) |
Je crois qu'il faut les autorisations de lecture/ecriture des répo... Pour encoder la variable, soit faut le faire dans le travis.yml (ce qui est déjà fait dans cette PR pour ce répo) via la méthode décrite sur la doc, soit directement dans les settings du répo sur travis ; pas besoin d'encoder ni rien, juste à copy-paste le token généré :o) |
Rapport de QA: Voilà les faits, vous me dites si ça correspond à ce que vous voulez
MAIS !! Cette fonction possède un side-effect qui a mon avis ne va pas vous plaire du tout: elle rajoute ce qui se passe dans En l'état, je peux donc très clairement annoncer que ceci n'est absolument pas une bonne idée et que je peux donc pas cautionner ce qui se passe. Et la solution "on limite ça à la branche de release" est pas une bonne idée, puisque la suite logique d'une release, c'est de remonter les bugfix dans dev. Autrement dit, on sera "contaminé" à moyen terme. Vraiment désolé, @SpaceFox et @sandhose ... Mais il va à mon avis falloir trouver autre chose. Et là, je me dis que j'ai fais tout ce bazar pour rien :'( |
J'avais effectivement pas pensé a ça... Je pensais que le gitignore évitait L'autre solution serait de push un dossier a part (donc déplacer le dist Autre chose qui m'a été proposé par Alex récemment — je sais absolument pas Le jeu. 16 avr. 2015 04:04, Pierre Beaujean notifications@github.com a
|
D'après la doc git, créer un tag détaché d'une branche serait possible (par Le jeu. 16 avr. 2015 07:32, Quentin Gliech quentingliech@gmail.com a
|
Bon, c'est effectivement possible de push uniquement sur un tag ! Du coup, le nouveau comportement, c'est que dès qu'un tag est créé (ce qui arrive forcément à chaque release), il va commit en ajoutant les fichiers front générés, et créer un nouveau tag Du coup, lors des MEP, il suffit de checkout le tag *-build (donc lancer le Du coup, je vais juste encore modifier le deploy.sh pour virer toute la partie build du front (et éventuellement rajouter un Instructions QADu coup, pour le nouveau comportement, il faut activer travis, et rajouter la variable d'environnement comme expliqué plus haut, vérifier que ça fait rien quand il y a pas de tag, et vérifier que ça créé un nouveau tag avec le bon nom lorsqu'on push un tag (en gros |
Je vais tenter de faire ça ASAP. Par contre, le fait que Travis nous plante est lié à cette PR ou c'est juste NPM qui a décidé de nous rappeler son existence ? D'ailleurs, ça m'amène à une question générale: qu'est ce qui va se passer si NPM se loupe pour une raison ou une autre ? Est ce qu'il y a moyen de relancer le build ? |
Le fail travis viens d'un timeout lorsqu'il a tenté de récupérer les binaries de lwip (module de manipulation d'image qui sert dans la génération du sprite). De manière générale, si le build fail, suffit de le relancer ; il poussera rien si le build fail (le script est dans |
Cool. Si ça marche, ça va être énorme :) |
Question: est-ce que sur la préprod c'est des tags ou des branches qui sont déployées ? Parce que si c'est pas des tags, bah le front sera pas build... Du coup, soit faudra changer le deploy.sh pour rajouter un argument s'il faut build le front ou non, soit faudra build "à la main" à chaque MEP sur la préprod (ce qui se résume par |
Oo Il reste à modifier le script de déploiement c'est ça ? |
Et de la doc :) (mais je sais que @Situphen adooore relire la doc) |
Suite aux remarques de @Taluu, j'ai déplacé toute la partie "push du front" du J'ai aussi écrit le petit bout de doc qu'il faut ; j'attends juste le résultat d'un build dû à un push de tag pour vérifier que le script marche, et sinon c'est bon pour merge :) |
@@ -12,6 +12,8 @@ Il s'agit donc de la partie du code définissant le design et l'affichage, mais | |||
|
|||
`NodeJS (en) <https://nodejs.org/>`__, `NPM (en) <https://www.npmjs.com/>`__ (gestionaire de paquet pour NodeJS) et `Gulp (en) <http://gulpjs.com/>`__ sont utilisés pour générer le code final minifié et cohérent. Le développement du *front-end* requiert donc des outils spécifiques dont l'installation `est expliquée ici <install/frontend-install.html>`__. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tu peux corriger "gestionaire" vu que c'est pas loin de ton bout de texte ? :)
d5f3bf2
to
619d2f0
Compare
`NodeJS (en) <https://nodejs.org/>`__, `NPM (en) <https://www.npmjs.com/>`__ (gestionaire de paquet pour NodeJS) et `Gulp (en) <http://gulpjs.com/>`__ sont utilisés pour générer le code final minifié et cohérent. Le développement du *front-end* requiert donc des outils spécifiques dont l'installation `est expliquée ici <install/frontend-install.html>`__. | ||
`NodeJS (en) <https://nodejs.org/>`__, `NPM (en) <https://www.npmjs.com/>`__ (gestionnaire de paquet pour NodeJS) et `Gulp (en) <http://gulpjs.com/>`__ sont utilisés pour générer le code final minifié et cohérent. Le développement du *front-end* requiert donc des outils spécifiques dont l'installation `est expliquée ici <install/frontend-install.html>`__. | ||
|
||
Pour éviter d'installer les outils front en production pour des questions de fiabilité, le front est automatiquement compilé par travis et poussé sur le dépot dès qu'un tag (qui correspond à une release) est poussé sur GitHub. `scripts/push_front.sh <https://github.com/zestedesavoir/zds-site/tree/dev/scripts/push_front.sh>`__ est donc lancé avec l'utilisateur `ZDS-Bot <https://github.com/zds-bot>`__ dès qu'un tag est poussé sur le dépot. Ce script crée un nouveau tag avec *-build* en suffixe, contenant un commit avec le front compilé, qui sera déployé en (pré-)production. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"compilé" --> "généré" ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les deux vont ? Le SCSS est compilé, le JS l'est aussi plus ou moins... Boarf, tu me dira, c'est vite changé !
Les droits du fichier |
|
En fait ça m'a paru bizarre qu'il soit pas exécutable, et comme j'avais rendu de toutes façons le |
619d2f0
to
619126c
Compare
+ déplacement du deploy.sh vers le dossier `scripts/`
619126c
to
4fe4b94
Compare
J'ai rétabli les permissions en 644 sur deploy.sh ; par contre, travis refuse de build depuis un petit moment :x https://travis-ci.org/sandhose/zds-site/builds |
Y'a |
|
1 similar comment
|
@pierre-24 Nan mais la c'est vraiment qu'il lance pas le build ! :( |
Travis a des erreurs sous Linux: http://www.traviscistatus.com/ (puis je crois qu'ils sont en maintenance de ce coté là) |
Etant donné que le build a passé avec les modifs récentes, cette PR est prête à être merge. |
Je ne vois rien qui s'y oppose :) |
Build auto du front avec Travis
Permet de commit + push le front buildé via travis dès qu'il y a un push vers une branche type release-XX, ou dès qu'il y a un commit avec dans le message de commit
[build front]
(n'importe quelle branche)Les commits sont fait avec l'utilisateur @ZDS-Bot