Development #15562
Utiliser jenkins.sh et tox comme les autres projets
0%
Description
Une fois qu'une configuration stable et efficace d'exécution des tests sera obtenue dans les autres modules, l'adopter.
Fichiers
Demandes liées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
Le jenkins.sh c'est juste pour ne pas avoir de script dans la config de jenkins, on peut déjà l'ajouter sans passer à tox.
Mis à jour par Frédéric Péters il y a environ 7 ans
De #15534 :
Tu penses vraiment qu'il y a un rapport avec tox [...]
Je pense vraiment important que l'environnement d'exécution des tests soit stable, qu'on n'ait pas aux mauvais moments à devoir corriger des problèmes de l'environnement plutôt que se préoccuper du logiciel. Très certainement un environnement stable peut être atteint avec tox, sa config permettrait même d'avoir à la fois un job "stable" tout en ayant sur le côté un job "aventureux", qui tirerait les dernières versions de n'importe quoi.
Dans un cas des 'erreurs pointés (je viens de regarder hobo, fargo était dans mon souvenir similaire), après des exécutions sans problème du pip de l'environnement même (et l'info "You are using pip version 7.1.2, however version 9.0.1 is available."), quand arrive une exécution dans l'environnement tox, bim, plantage. Que ça soit tox, une mise à jour d'autre chose, notre utilisation qui fait qu'on nettoie mal des trucs, il y a un truc à régler là-dedans avant d'y confier w.c.s.
Si on veut séparer jenkins.sh de l'adoption de tox, pas de problème pour moi pour avoir un ticket en plus.
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- ne pas utiliser le flag -r de tox qui force la recréation des environnements (on avait le même problème avec jenkins seul avant quand on ne cocher pas la case "Clear" dans le virtualenv builder).
- avoir déplacé le toxworkdir dans /tmp, ce qui fait que même en supprimant le répertoire de travail (ce que j'ai fait sur fargo, qui n'avait justement pas de toxworkdir défini) ça ne corrigeait pas le problème
Donc je préconise simplement d'ajouter le flag -r
à tous les appels à tox dans les jenkins.sh.
Mis à jour par Frédéric Péters il y a environ 6 ans
- Dupliqué par Development #21812: Utliser tox dans le job Jenkins ajouté
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Lié à Development #27159: jenkins : jenkinsfile pour les builds ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 5 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Emmanuel Cazenave
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Lié à Development #36419: ajout pour que tox.ini fonctionne ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
J'ai donc repris les choses ici.
Il reste peu d'erreurs mais les résultats dont instables, pas les mêmes tests en erreur entre deux builds, et c'est idem en local (essayer tox -- tests/test_formdef.py::test_file_field_migration
plusieurs fois d'affilée, puis pleurer). Tout à fait mystérieux pour l'instant.
Mis à jour par Frédéric Péters il y a plus de 4 ans
tests.test_formdef_import.test_field_validation
tests.test_workflow_import.test_wscall_action
Les erreurs mentionnées ici manquent de contenu, faire -vv comme suggéré ?
tests.test_saml_auth.test_saml_login_page_several_idp[pickle]
tests.test_saml_auth.test_saml_login_page_several_idp[sql]
(je ne comprends pas trop, c'est comme si le setup_idp(4) avait juste configuré un seul IdP, et du coup un seul IdP redirect SAML plutôt que page intermédiaire.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Frédéric Péters a écrit :
tests.test_formdef_import.test_field_validation
tests.test_workflow_import.test_wscall_actionLes erreurs mentionnées ici manquent de contenu, faire -vv comme suggéré ?
tests.test_saml_auth.test_saml_login_page_several_idp[pickle]
tests.test_saml_auth.test_saml_login_page_several_idp[sql](je ne comprends pas trop, c'est comme si le setup_idp(4) avait juste configuré un seul IdP, et du coup un seul IdP redirect SAML plutôt que page intermédiaire.
C'est le fonctionnement normal sur /login/ ça prend le premier IdP (au pif parce que le référentiel d'IdP est un dico), le test est juste non-déterministe car dépendant de hashseed dans tox, et donc un peu foireux.
C'est toujours #10477 il me semble, en attendant on peut fixer un hashseed si vous voulez (un qui passe).
PS:
# wcs/qommon/ident/idp.py 1058 def login(self): 1059 idps = get_cfg('idp', {}) 1060 1061 # there is only one visible IdP, perform login automatically on 1062 # this one. 1063 server = misc.get_lasso_server() 1064 for x in server.providerIds: 1065 key_provider_id = misc.get_provider_key(x) 1066 if not idps.get(key_provider_id, {}).get('hide', False): 1067 saml = get_publisher().root_directory_class.saml 1068 return saml.perform_login(x)
le commentaire ici est d'ailleurs faux, c'est pas "there is only one visible IdP" c'est "there is a least one visible IdP, take the first one".
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Fichier 0001-misc-PEP-440-compliant-version-number-15562.patch 0001-misc-PEP-440-compliant-version-number-15562.patch ajouté
- Fichier 0002-use-tox-to-run-tests-15562.patch 0002-use-tox-to-run-tests-15562.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Benjamin Dauvergne a écrit :
C'est toujours #10477 il me semble, en attendant on peut fixer un hashseed si vous voulez (un qui passe).
C'est bien ça (mais du coup je ne comprends pas pourquoi je job actuel est stable). Et donc ici une proposition avec PYTHONHASHSEED=0
(30 min d'un script shell qui essayait des seed ne m'a pas permis d'en trouver une qui satisfasse tous les tests qui y sont sensibles). Ou alors je reprends #10477.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Emmanuel Cazenave a écrit :
Benjamin Dauvergne a écrit :
C'est toujours #10477 il me semble, en attendant on peut fixer un hashseed si vous voulez (un qui passe).
C'est bien ça (mais du coup je ne comprends pas pourquoi je job actuel est stable). Et donc ici une proposition avec
PYTHONHASHSEED=0
(30 min d'un script shell qui essayait des seed ne m'a pas permis d'en trouver une qui satisfasse tous les tests qui y sont sensibles). Ou alors je reprends #10477.
Et bien parce que sans tox on utilise 0 comme tu le fais ici donc pas de sel ajouté du tout1, donc ok pour 0 faute de mieux.
1 https://docs.python.org/2/using/cmdline.html#envvar-PYTHONHASHSEED
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit d4600b2816225ef5fe608f5052fb0ac20bd193d4 Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Thu Sep 26 15:25:12 2019 +0200 use tox to run tests (#15562) commit 564f96ab82b40a04b109e53287ee2b550fa8ccb1 Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Thu Sep 26 15:23:02 2019 +0200 misc: PEP 440 compliant version number (#15562)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: PEP 440 compliant version number (#15562)