LaurentClaessens / mazhe

(almost) Everything I know in math.
http://laurent.claessens-donadello.eu/
GNU General Public License v3.0
120 stars 32 forks source link

Integration continue & release automatique #139

Open ColinPitrat opened 4 years ago

ColinPitrat commented 4 years ago

Avez-vous déjà étudié la possibilité d'utiliser un outil d'intégration continue (Travis, Circle-CI, Appveyor ...) pour générer les PDFs automatiquement à chaque push/PR, faire d'éventuelles vérifications et publier les PDFs dans la page release de github?

J'ai fait un essai avec Travis: Les builds: https://travis-ci.org/ColinPitrat/mazhe/builds La page de releases: https://github.com/ColinPitrat/mazhe/releases

Un avantage pourrait être d'ajouter un certain nombre de vérifications (comme les références vers l'avant, que je n'ai pas réussi à faire fonctionner pour l'instant à cause de https://github.com/LaurentClaessens/pytex/issues/1).

LaurentClaessens commented 4 years ago

Il y a déjà plusieurs choses en place, mais c'est un peu "fait maison".

pour les tests

Pour tester plein de choses, il y a le script testing.sh

Il fait un petit jeu de

git stash
git clone
[travail dans le nouveau répertoire]
git stash apply

pour être sûr qu'il compile tout dans un répertoire sans 'aux', 'idx', etc.

Il teste entre autres :

Il y a même une fonction pour tester les liens morts dans la biblio, mais finalement on a décidé de ne plus s'en inquiéter. On en a parlé ici.

Version

pytex fait un joli hack d'un fichier source pour indiquer le commit courrant dans la source LaTeX avant la compilation. Le sha1 du commit arrive sur la page 1 du PDF.

publication

Là c'est du "organisation personnelle". J'ai 3 répertoirres :

Seul 'master' est connecté à github.

Ensuite j'ai un script 'deploy.sh' qui :

la suite

J'aime bien avoir un peu de souplesse par rapport aux tests. Par exemple pendant que je suis en train de travailler sur quelque chose, je veux pouvoir publier les résultats intermédiaires, même si je sais qu'il y a encore des références vers le futur.

LaurentClaessens commented 4 years ago

PS : j'ai publié un patch sur pytex pour ajouter le fichier manquant.

ColinPitrat commented 4 years ago

pytex marche pour moi maintenant, merci. Est-ce que l'utilisation de travis pour la publication automatique sur GitHub (ou ailleurs, le sftp devrait pouvoir se faire: https://docs.travis-ci.com/user/deployment/custom/) te parait intéressante du coup ou pas ? Si oui je peux peaufiner ma branche travis et envoyer une PR. Sinon on peut fermer le ticket :-)

LaurentClaessens commented 4 years ago

Oui, je crois qu'on peut fermer. Pour l'instant, ma chaine fonctionne bien ... en tout cas chez moi.

En tout cas , merci de t'en préoccuper. Ça sera peut-être utile un jour.

Le HOTT book, qui est certainement un modèle à suivre, utilise effectivement Travis : https://github.com/HoTT/book/wiki/Nightly-Builds https://homotopytypetheory.org/book/