Projet

Général

Profil

Development #38296

Publier les fichiers junit en cas d'erreur en pyhton3

Ajouté par Emmanuel Cazenave il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 décembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description


Fichiers


Demandes liées

Lié à Produits Entr'ouvert - Development #38293: Utiliser mergeJunitResults() dans tous les JenkinsfileFermé09 décembre 2019

Actions

Révisions associées

Révision fa926506 (diff)
Ajouté par Emmanuel Cazenave il y a plus de 4 ans

jenkins: publish consolidated junit file (#38296)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Duplique Development #38293: Utiliser mergeJunitResults() dans tous les Jenkinsfile ajouté
#2

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é
#3

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é
#4

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#6

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)
#7

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.

#8

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

Pourquoi donc ?

#9

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).

#10

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)).

#11

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).

#12

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).

#13

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.

#14

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.

#15

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()
         }
#16

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

Formats disponibles : Atom PDF