Development #38296
Publier les fichiers junit en cas d'erreur en pyhton3
0%
Description
Actuellement c'est aiguille botte de foin : https://jenkins.entrouvert.org/job/wcs-wip/job/wip%252F38240-long-int/3/
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Duplique Development #38293: Utiliser mergeJunitResults() dans tous les Jenkinsfile ajouté
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Duplique Development #38293: Utiliser mergeJunitResults() dans tous les Jenkinsfile supprimé
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Lié à Development #38293: Utiliser mergeJunitResults() dans tous les Jenkinsfile ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Fichier 0001-jenkins-publish-consolidated-junit-file-38296.patch 0001-jenkins-publish-consolidated-junit-file-38296.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit fa926506f8fd7e366c0566f3867afdb834e54f8b Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Mon Dec 9 11:25:28 2019 +0100 jenkins: publish consolidated junit file (#38296)
Mis à jour par Frédéric Péters il y a plus de 4 ans
Perso pas satisfait par ce regroupement dans une seule étape de python 2 et python 3.
Mis à jour par Frédéric Péters il y a plus de 4 ans
Dans la branche qui a été validée, https://jenkins.entrouvert.org/job/wcs-wip/job/wip%252F38296-junit-py3/3/testReport/tests/test_admin_pages/ mélange sans indication les tests. Mais je vois dans la dernière version https://jenkins.entrouvert.org/job/wcs/955/testReport/ que c"est désormais séparé.
Du coup ce qui reste c'est qu'on ne voit pas sur la page du build si c'est à cause d'une différence python 2/3; alors clairement je me suis habitué à voir ça directement et c'était super utile pour le développement de la branche python 3, c'est sans doute moins utile maintenant qu'elle tourne.
(et ça rapproche du reste, etc. très bien).
Mis à jour par Frédéric Péters il y a plus de 4 ans
(ça permet(tait) aussi d'être notifié d'un problème de build plus rapidement, pas besoin d'attendre dix minutes de plus pour le build python3 (ou python 2 quand j'avais inversé les builds dans la branche)).
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Frédéric Péters a écrit :
Du coup ce qui reste c'est qu'on ne voit pas sur la page du build si c'est à cause d'une différence python 2/3; alors clairement je me suis habitué à voir ça directement et c'était super utile pour le développement de la branche python 3, c'est sans doute moins utile maintenant qu'elle tourne.
Je pense que je peux facilement arranger ça en mettant plutôt l'environnement sur le nom du test (entre [] comme les fixtures paramétriques de pytest).
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Frédéric Péters a écrit :
(ça permet(tait) aussi d'être notifié d'un problème de build plus rapidement, pas besoin d'attendre dix minutes de plus pour le build python3 (ou python 2 quand j'avais inversé les builds dans la branche)).
Ça par contre je ne comprends pas, avec le Jenkinsfile existant les tests python3 étaient juste invisibles car non publiés, ou alors il y un truc magique.
PS: et je ne suis pas certain qu'on puisse publier les tests en plusieurs fois (mais la doc du plugin jUnit de jenkins est tout à fait inexistante, donc pour savoir ce qu'il peut ou ne peut pas faire il faut en général essayer).
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Benjamin Dauvergne a écrit :
Frédéric Péters a écrit :
Du coup ce qui reste c'est qu'on ne voit pas sur la page du build si c'est à cause d'une différence python 2/3; alors clairement je me suis habitué à voir ça directement et c'était super utile pour le développement de la branche python 3, c'est sans doute moins utile maintenant qu'elle tourne.
Je pense que je peux facilement arranger ça en mettant plutôt l'environnement sur le nom du test (entre [] comme les fixtures paramétriques de pytest).
Voilà, patch proposé : #38334.
Mis à jour par Frédéric Péters il y a plus de 4 ans
(ça permet(tait) aussi d'être notifié d'un problème de build plus rapidement, pas besoin d'attendre dix minutes de plus pour le build python3 (ou python 2 quand j'avais inversé les builds dans la branche)).
Ça par contre je ne comprends pas, avec le Jenkinsfile existant les tests python3 étaient juste invisibles car non publiés, ou alors il y un truc magique.
Deux choses là, la première c'est que ça échouait tranquillement sur le premier build, du coup pour une erreur commune, il y avait dix minutes de gagnées. Pour une erreur qui apparaissait uniquement en Python 3, la sortie verbeuse, et ctrl-f, me faisaient l'affaire.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Frédéric Péters a écrit :
(ça permet(tait) aussi d'être notifié d'un problème de build plus rapidement, pas besoin d'attendre dix minutes de plus pour le build python3 (ou python 2 quand j'avais inversé les builds dans la branche)).
Ça par contre je ne comprends pas, avec le Jenkinsfile existant les tests python3 étaient juste invisibles car non publiés, ou alors il y un truc magique.
Deux choses là, la première c'est que ça échouait tranquillement sur le premier build, du coup pour une erreur commune, il y avait dix minutes de gagnées. Pour une erreur qui apparaissait uniquement en Python 3, la sortie verbeuse, et ctrl-f, me faisaient l'affaire.
Alors on peut tenter un truc comme ça :
diff --git Jenkinsfile Jenkinsfile index 9882f120..a7d1b705 100644 --- Jenkinsfile +++ Jenkinsfile @@ -4,20 +4,14 @@ pipeline { agent any options { disableConcurrentBuilds() } stages { - stage('Unit Tests') { + stage('Unit Tests (Python2)') { steps { - sh 'tox -rv' + sh 'tox -rv -e py2-coverage-pylint' } - post { - always { - script { - utils = new Utils() - utils.publish_coverage('coverage.xml') - utils.publish_coverage_native('index.html') - utils.publish_pylint('pylint.out') - } - mergeJunitResults() - } + } + stage('Unit Tests (Python3)') { + steps { + sh 'tox -rv -e py3' } } stage('Packaging') { @@ -39,6 +33,15 @@ pipeline { utils.mail_notify(currentBuild, env, 'ci+jenkins-wcs@entrouvert.org') } } + always { + script { + utils = new Utils() + utils.publish_coverage('coverage.xml') + utils.publish_coverage_native('index.html') + utils.publish_pylint('pylint.out') + } + mergeJunitResults() + } success { cleanWs() }
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
jenkins: publish consolidated junit file (#38296)