Skip to content
Snippets Groups Projects

Add barebuild script

Closed Stéphane Veyret requested to merge barebuild into dev

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • @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 et nw-gyp dans les dépendencies ? la aussi, stp ne commite pas les changements de dépendances dans le package.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-532732648

    Pour 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. :smile: Si ça ne marche pas (avec des différences de paramètres, par exemple), je remettrai yarn en dur.

  • Éloïs changed milestone to %1.8

    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. :smile: Si ça ne marche pas

    Je 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

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • 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 et build_arm.

  • Stéphane Veyret added 2 commits

    added 2 commits

    Compare with previous version

  • Attention, je n'ai pas l'environnement adéquat et n'ai pas encore pu tester les build-*

  • Stéphane Veyret added 22 commits

    added 22 commits

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • Stéphane Veyret added 2 commits

    added 2 commits

    Compare with previous version

  • @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 commande find 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 Veyret
  • Stéphane Veyret added 2 commits

    added 2 commits

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • 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 :

    1. 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
    2. 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
  • Stéphane Veyret added 6 commits

    added 6 commits

    Compare with previous version

  • @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 ;)

Please register or sign in to reply
Loading