Add barebuild script
Lié au ticket #1405 (closed), c'est un premier jet. Dans l'idéal, il faudrait transformer en Makefile de manière à ne pas refabriquer la base si on veut créer une version serveur et une version bureau. Du coup, je n'ai pas encore modifié les scripts build_lin et build_arm pour qu'ils appellent cette procédure.
Cette MR peut toutefois être intégrée (c'est d'autant moins dangereux qu'il ne sera pas utilisé en interne), mais je continue à travailler dessus.
Merge request reports
Activity
@sveyret merci de ne pas ajouter duniter-ui dans les dépendances du package.json. Il doti être possible de builder duniter sans son inteface graphique, c'est personnellement ce que je fais tout le temps en dev pour gagner du temps quand je n'est pas besoin de tester l'interface graphique.
Il est également possible d'y intégrer une autre interface graphique qui exploite la même API d'administration, donc dans tout les cas je en veut pas que duniter-ui soit intégré directement.
Aussi, pourquoi ajoute tu
nw
etnw-gyp
dans les dépendencies ? la aussi, stp ne commite pas les changements de dépendances dans lepackage.json
.Enfin j'ai regardé ton script et je vois que tu a prévu une option
--platform
, si c'est pour faire de la cross-compilation tu peut oublier, Neon que nous utilisons pour le binding NodeJs/Rust ne permet pas la cross-compilation : https://github.com/neon-bindings/rfcs/issues/16#issuecomment-532732648Pour que je merge, il faut a minima que tu annule les changement de dépendances dans le package.json :)
Oups ! Ces modifications ne sont pas volontaires, c'est le résultat de tests qui ont raté…
Est-ce que j'ai quelques jours devant moi avant la sortie de la nouvelle version ou est-ce qu'il faut que je corrige rapidement ? Sinon, je suis en train d'essayer de faire un Makefile plutôt.
L'option platform n'est pas faite pour la cross-compilation, elle est liée à la compilation par node-pre-gyp.
@sveyret aussi je vois que tu utilise npm, il ne faut pas le faire, il faut impérativement utiliser yarn sinon ça ne buildera pas. En effet, npm se base sur le fichier npm-shrinkwrap.json qui n'est plus maintenu, il faudrait d'ailleurs que je le supprime.
Mais en même temps je réfléchi a revenir a npm, notamment a la lecture de cet article : https://engineering.mixmax.com/blog/to-yarn-and-back-again-npm/
Est-ce que j'ai quelques jours devant moi avant la sortie de la nouvelle version ou est-ce qu'il faut que je corrige rapidement ? Sinon, je suis en train d'essayer de faire un Makefile plutôt.
@sveyret tien croisements de messages, oui tu a quelques jours, vas-y :)
@librelois, pour npm, j'ai déjà créé une variable dans le futur Makefile pour qu'on puisse mettre ce qu'on veut.
Si ça ne marche pas (avec des différences de paramètres, par exemple), je remettrai yarn en dur.changed milestone to %1.8
pour npm, j'ai déjà créé une variable dans le futur Makefile pour qu'on puisse mettre ce qu'on veut.
Si ça ne marche pasJe te le dit d'avance, ça ne marchera pas avec npm, ça ne peut fonctionner qu'avec yarn. Non seulement les options ne sont pas les mêmes mais le build ne se fera tout simplement pas comme il faut car le fichier
npm-shrinkwrap.json
est obsolète.Merci de mettre yarn en dur, en attendant qu'on est l'aval de cgeek pour repasser sur npm : https://forum.duniter.org/t/duniter-proposition-de-repasser-de-yarn-a-npm/7242
Voici une nouvelle version @librelois en utilisant un Makefile. Du coup, on peut construire en plusieurs parties, ce qui correspond à la façon dont c'est fait dans
build_lin
.Demain, je travaillerai sur l'utilisation du Makefile dans
build_lin
etbuild_arm
.added 2 commits
added 22 commits
-
aad7f36a...3513c24a - 20 commits from branch
dev
- 05e9e541 - Add barebuild script
- 1d02b34e - Use Makefile in build-*
-
aad7f36a...3513c24a - 20 commits from branch
added 2 commits
@sveyret je suis en train de migrer le projet Duniter sur npm sur la branche
ref/yarn-to-npm
et du coup je suis obligé de modifier les script de build aussi (pour remplacer yarn par npm).J'en profite également pour essayer d'ajouter une commande qui supprime les fichiers typescript (inutiles à l'exécution) afin d'alléger les livrables.
Il vaut mieux que tu attende que j'ai fini avant de continuer ton script, je devrait merger dans la soirée, tu devrait avoir peut de conflits, n'hésitez pas a me demander de l'aide si tu galère :)
Edited by Éloïs@librelois pas de soucis, je n'ai que peu d'appels à
yarn
dans le Makefile. Pour la suppression des fichiers.ts
, c'est déjà prévu dans le Makefile.Pour la suppression des fichiers
.ts
, c'est déjà prévu dans le Makefile.@sveyret alors attention, pour une raison obscure l'appel a la commande find pour supprimer les fichiers
.ts
ne fonctionne pas pour le build de l'image Docker, il faudrait donc que tu rende cette suppression optionnelle afin que la construction de l'image Docker puisse également utilisée ton script :)Edited by Éloïs@librelois est-ce que tu parles du
find | grep -v
? Si c'est le cas, effectivement, cette commande ne fonctionnait pas bien, et du coup, je l'ai modifiée. Par contre, si tu me dis que c'est la commandefind
qui ne fonctionne pas du tout, alors effectivement, il faudra que je la rende optionnelle.@sveyret j'ai testé avec cette commande et ça ne fonctionne pas sous Docker :
find ./ \( -name "*.js.map" -o -name "*.d.ts" -o -name "*.ts" \) -delete
Les logs du job en échec : https://git.duniter.org/nodes/typescript/duniter/-/jobs/38776
@librelois il va chercher dans sys/kernel ? Comme s'il n'était pas dans le bon répertoire, alors que si… Sinon, essaie peut-être sans les parenthèses ? Essaie aussi sans le
./
.Edited by Stéphane Veyretadded 2 commits
Dsl j'y est déjà passé trop de temps, vu qu'on vas passer par tes commandes on verra en testant ton script :)
@sveyret par contre j'ai 2 retours concernant ta contribution :
- Merci de renommer ta branche
feature/barebuild
conformément aux conventions git du projet, cela ets important car le nom de la branche est inscrit dans le commit de merge - Je souhaite limiter au maximum le nombre de fichiers a la racine, car ça complexifie la compréhension du dépôt quand on débarque, or je suis en train de simplifier le dev on boarding pour l'avenir. Serait t-il possible de placer ton script Makefile dans le dossier
release/
dans la mesure où il n'est utilisé que pour builder des livrables ?
Edited by Éloïs- Merci de renommer ta branche
added 6 commits
-
5063676b...730a184f - 3 commits from branch
dev
- 40bea2ac - Add bare build Makefile
- 25d99503 - Use Makefile in build-*
- 85dcdb25 - Use Makefile in Dockerfile
Toggle commit list-
5063676b...730a184f - 3 commits from branch
@librelois d'ac, je vais essayer de faire cela, mais ce n'est pas très « conventionnel » d'avoir le
Makefile
qui n'est pas à la racine, alors j'espère que ça ne va pas tout péter…@sveyret Il suffit de
mv
le fichier Makefile a la racine juste avant de le lancer, ainsi ça ne pète rien, et tout le monde est content ;)