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 :

[email protected]:~/gladys/server $ npm test

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


> [email protected] 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! [email protected] 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 [email protected] 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 :

[email protected]:~/gladys/server $ cd ../front/
[email protected]:~/gladys/front $ npm test

> [email protected] 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.
[email protected]:~/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 Like

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 Likes

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

Hello, j’ai eu exactement le même problème sous windows.
Solution:

  1. modifier les paths pour rajouter un “C:” (donc ça devient “C:/tmp/gladys-test.db”)
  2. créer à la main le dossier “tmp” dans le drive C:

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:

Si quelqu’un le fait => <3
J’ai la flemme de configurer le PATH sur windows pour mettre python et tout, donc je dév sur un vieux portable avec ubuntu dessus. Le pc chauffe vite et en 30 minutes il freeze :sweat_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

Si t’as un tuto qui explique comment le mettre en place en 2 étapes je suis preneur x) sinon je vais continuer a dev depuis windows, commit, refresh sur mon ubuntu :joy:

@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

https://documentation.gladysassistant.com/en/development#setup-env

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

Merci @VonOx pour l’info :slight_smile:

@Ilyma Merci ca marche niquel. Faudrait réécrire la doc pour windows du coup.

A savoir que j’avais node d’installée dans mon windows qui posait un pb. j’ai du apt-get install node et aussi export PATH=/usr/bin:$PATH car le node de mon windows était selectionné par défaut. Maintenat tout marche youpi !

@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 Like

Ah ben j’ai déjà un problème. npm start lance pas en mode debug. donc j’ai que les logger.info et pas les logger.debug :cry:

je te conseillerais d’installer nvm

c’est noté !

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 )

Ben c’est plus pratique de mettre WSL que d’installer python et compagnie puis de l’ajouter dans le path windows etc. Enfin je trouves.

Et pour ce qui est de node.exe … c’était pourtant le cas. Et j’ai vu pas mal d’issue à ce sujet et j’ai fini par trouver cette solution dans un commentaire sur le git du projet.

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.