Configuration d'une plateforme dev pour Gladys 4

Bonjour,

Cela fait maintenant 2 jours que mon raspberry pi 4 est mis à disposition pour créer un petit serveur pour faire tourner Gladys 4. Dans le but d’apporter mes modifications je passe directement par le Git, comme décrit dans la doc.

J’ai donc cloné le repo dans un dossier, installé via npm le server et le front, migré la base, mais malgré tout j’obtiens ces erreurs après lancement de test :

Côté serveur :

pi@raspberrypi:~/gladys/server $ npm test

> gladys-server@ pretest /home/pi/gladys/server
> cross-env SQLITE_FILE_PATH=/tmp/gladys-test.db npm run db-migrate:test && npm run eslint


> gladys-server@ db-migrate:test /home/pi/gladys/server
> cross-env NODE_ENV=test node_modules/.bin/sequelize db:migrate


Sequelize CLI [Node: 10.16.3, CLI: 5.4.0, ORM: 4.44.3]

Loaded configuration file "config/config.js".
Using environment "test".
== 20190211042644-create-calendar-event: migrating =======

ERROR: SQLITE_ERROR: index t_calendar_event_calendar_id already exists

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! gladys-server@ db-migrate:test: `cross-env NODE_ENV=test node_modules/.bin/sequelize db:migrate`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the gladys-server@ db-migrate:test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2019-10-17T09_25_49_725Z-debug.log
npm ERR! Test failed.  See above for more details.

Côté front :

pi@raspberrypi:~/gladys/server $ cd ../front/
pi@raspberrypi:~/gladys/front $ npm test

> gladys-front@ test /home/pi/gladys/front
> jest --coverage

 FAIL  tests/header.test.js
  Initial Test of the Header
    ✕ Header renders Gladys Assistant title and 8 items in header (78ms)
    ✓ Should return null, login page doesnt need a header (2ms)
    ✕ [Backslash URL] Header renders Gladys Assistant title and 8 items in header (17ms)
    ✓ [Backslash URL] Should return null, login page doesnt need a header (1ms)

  ● Initial Test of the Header › Header renders Gladys Assistant title and 8 items in header

    expect(received).toBe(expected)

    Expected value to be (using ===):
      "Gladys Assistant"
    Received:
      ""

      at Object.<anonymous> (tests/header.test.js:25:305)
          at new Promise (<anonymous>)

  ● Initial Test of the Header › [Backslash URL] Header renders Gladys Assistant title and 8 items in header

    expect(received).toBe(expected)

    Expected value to be (using ===):
      "Gladys Assistant"
    Received:
      ""

      at Object.<anonymous> (tests/header.test.js:25:728)
          at new Promise (<anonymous>)

Test Suites: 1 failed, 1 total
Tests:       2 failed, 2 passed, 4 total
Snapshots:   0 total
Time:        1.956s
Ran all test suites.
-------------------|----------|----------|----------|----------|-------------------|
File               |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
-------------------|----------|----------|----------|----------|-------------------|
All files          |      100 |    66.67 |      100 |      100 |                   |
 components/header |      100 |    57.14 |      100 |      100 |                   |
  index.jsx        |      100 |    57.14 |      100 |      100 |35,41,45,73,96,114 |
 utils             |      100 |      100 |      100 |      100 |                   |
  url.js           |      100 |      100 |      100 |      100 |                   |
-------------------|----------|----------|----------|----------|-------------------|
npm ERR! Test failed.  See above for more details.
pi@raspberrypi:~/gladys/front $

Pourtant, j’ai bien sqlite3 d’installé, node et npm tournent bien, et j’essaie d’installer directement après clonage du repo Gladys.

Côté serveur, le problème viendrait d’index dupliqués dans la base.
Côté front, j’ai une erreur au niveau de la définition du Header.

Pourriez-vous me fournir des pistes de recherches ? J’ai très hâte de pouvoir commencer à développer les services dont j’ai besoin :grin:

Merci d’avance.

1 « J'aime »

Petit up !

Cela fait une semaine, et entre temps j’ai essayé d’installer un serveur directement sur le WSL de mon pc. Après installation, j’en arrive exactement au même niveau. Quelqu’un aurait-il l’amabilité de m’apporter de l’aide s’il vous plaît ?

Merci :wink:

Oups désolé j’avais zappé ton message! :slight_smile:

Déjà clairement je te conseille de faire tourner ça sur ton laptop windows, pas sur ton Pi, c’est impossible de développer sur Pi!

Il faut que tu supprime le fichier /tmp/gladys-test.db, visiblement ta DB existe déjà (c’est là où est situé la db pour les tests). Sur windows je sais pas si ça marche ce genre de path? Il faut peut être le changer… (dans le fichier server/package.json, dans l’endroit ou sont définis les scripts )

Oui ça marche en WSL :wink:

Merci pour vos retours ! :grin:

Après une journée acharnée j’ai finalement réussi à installer mon serveur, j’ai donc pu vérifier mes premiers apports :

Le développement du service Arduino commence !

J’ai beaucoup d’idée concernant les pages de configuration et d’interaction avec les devices associés. J’ai une semaine de vacances, j’en profiterai donc pour avancer au maximum, je vous ferai un retour dès que j’ai un début fonctionnel :wink:

Merci encore pour votre aide :slightly_smiling_face:

3 « J'aime »

Génial @billona! N’hésite pas si tu as des questions :slight_smile:

Hello à tous,

Ce sujet m’intéresse (monter une plateforme dev pour Gladys 4).

J’ai l’intuition qu’il est possible de faire cela avec Docker.
Je ne suis pas devops et je n’ai malheureusement que très peu de temps à consacrer à ce type de chose
Dites-moi si cela vous semble possible de monter une plateforme de dev avec Docker en suivant un tuto du type :

  • Monter le docker avec le docker-compose.yml => image node et un montage de volumes qui va bien
  • poser le git Gladys v4 dans le mount
  • builder le tout en mode dev

En vous souhaitant une bonne journée :slight_smile:

Y’a rien à faire de particulier pour dev avec docker, il suffit d’ajouter un volume lors de la création ( le dossier ou est installer Gladys)

Mais y’a rien de pratique car l’image c’est pour de la prod ( pas de hot reload)

Le WSL c’est le top sous Windows

@renaiku , voila la démarche assez simple que j’ai fait

Alors, je l’ai fait il y a longtemps donc j’ai pas suivis la doc de maintenant, il était deja sur mon ordi depuis ça sortie mais je sais que c’est simple a configurer. ça t’installe un bon vieux ubuntu (ou debian ou autre selon tes préférences)

Tu installe WSL, tu peux retourner dans ton projet (ou le réinstaller comme tu préfere)
NOTE : A savoir, le dossier c:// se trouve sous cette forme /mnt/c/ sous WSL

Puis apres, tu suis l’installation standard sous windows pour node module qui utilise le path c:/ de la doc gladys v4 et tu run les server sous WSL

et en théorie, ça devrait fonctionner parfaitement ^^

Merci @VonOx pour l’info :slight_smile:

@renaiku Personnellement, je te conseillerais d’installer nvm pour switcher de version de node quand tu veux, enfin, si c’est pas deja le cas ^^. c’est pas mal de manipulation sur windows mais tu est tellement tranquille apres ^^

1 « J'aime »

Bah non pourquoi tu veux réécrire la doc, WSL c’est Linux donc les dépendances sont les mêmes. Ou alors j’ai pas compris ce que tu as voulu dire.

Pour ton path tu veux dire que node.exe était utilisé sous WSL ? ( ça m’étonne vraiment )

Ah oui clairement je suis d’accord.

OK je vois, j’ai jamais eu de node windows + WSL pour ça que j’ai jamais constaté ce problème.