From 3272427766315363f3ad299d343c9d70a5e99186 Mon Sep 17 00:00:00 2001 From: William Petit Date: Wed, 14 Sep 2022 09:14:34 +0200 Subject: [PATCH] mse-rgaa: utilisation de credentials pour l'authentification basic auth --- pipelines/mse-rgaa.jenkinsfile | 93 +++++++++++++++++----------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/pipelines/mse-rgaa.jenkinsfile b/pipelines/mse-rgaa.jenkinsfile index 6e47776..977518c 100644 --- a/pipelines/mse-rgaa.jenkinsfile +++ b/pipelines/mse-rgaa.jenkinsfile @@ -1,13 +1,10 @@ import hudson.tasks.test.AbstractTestResultAction -@Library("cadoles") _ +@Library('cadoles') _ pipeline { - - parameters { + parameters { text(name: 'URLS', defaultValue: 'https://msedev.crous-toulouse.fr\nhttps://msedev.crous-toulouse.fr/envole/enregistrement\nhttps://msedev.crous-toulouse.fr/envole/page/faq\nhttps://msedev.crous-toulouse.fr/envole/page/?t=liens_utiles\nhttps://msedev.crous-toulouse.fr/envole/page/?t=mentions_legales\nhttps://msedev.crous-toulouse.fr/envole/message/new\nhttps://msedev.crous-toulouse.fr/envole/recuperation/email\nhttps://msedev.crous-toulouse.fr/envole/courriel/raz', description: 'Liste des URLs à tester, une par ligne') - string(name: 'USERNAME', defaultValue: '', description: "Nom d'utilisateur pour l'authentification Basic Auth, si nécessaire") - password(name: 'PASSWORD', defaultValue: '', description: "Mot de passe pour l'authentification Basic Auth, si nécessaire") booleanParam(name: 'INCLUDE_WARNINGS', defaultValue: false, description: 'Inclure les avertissements') booleanParam(name: 'INCLUDE_NOTICES', defaultValue: false, description: 'Inclure les notifications') } @@ -18,48 +15,55 @@ pipeline { agent { node { - label "docker" + label 'docker' } } stages { - stage("Run RGAA audit") { + stage('Run RGAA audit') { steps { script { - def urls = params.URLS.split('\n') - - def count = 0 - urls.each { u -> - stage("Audit page '${u}'") { - def report = pa11y.audit(u.trim(), [ - reporter: 'junit', - username: params.USERNAME, - password: params.PASSWORD, - standard: 'WCAG2AA', - includeNotices: params.INCLUDE_NOTICES, - includeWarnings: params.INCLUDE_WARNINGS, - ]); - - writeFile file:"./report_${count}.xml", text:report - count++ - } - } - - junit testResults: '*.xml', skipPublishingChecks: true - - rocketSend ( - channel: "#cnous-mse", + def urls = params.URLS.split('\n') + + def count = 0 + urls.each { u -> + stage("Audit page '${u}'") { + withCredentials([ + usernamePassword( + credentialsId: 'msedev-basic-auth', + usernameVariable: 'MSEDEV_USERNAME', + passwordVariable: 'MSEDEV_PASSWORD' + ) + ]) { + def report = pa11y.audit(u.trim(), [ + reporter: 'junit', + username: env.MSEDEV_USERNAME, + password: env.MSEDEV_PASSWORD, + standard: 'WCAG2AA', + includeNotices: params.INCLUDE_NOTICES, + includeWarnings: params.INCLUDE_WARNINGS, + ]) + + writeFile file:"./report_${count}.xml", text:report + count++ + } + } + } + + junit testResults: '*.xml', skipPublishingChecks: true + + rocketSend( + channel: '#cnous-mse', avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png', message: """ Audit RGAA | ${testStatuses()} - + - [Voir les tests](${env.RUN_DISPLAY_URL}) @here """.stripIndent(), rawMessage: true, ) - } } } @@ -70,21 +74,18 @@ pipeline { cleanWs() } } - - - } @NonCPS def testStatuses() { - def testStatus = "" - AbstractTestResultAction testResultAction = currentBuild.rawBuild.getAction(AbstractTestResultAction.class) - if (testResultAction != null) { - def total = testResultAction.totalCount - def failed = testResultAction.failCount - def skipped = testResultAction.skipCount - def passed = total - failed - skipped - testStatus = "Passant(s): ${passed}, Échoué(s): ${failed} ${testResultAction.failureDiffString}, Désactivé(s): ${skipped}" - } - return testStatus -} \ No newline at end of file + def testStatus = '' + AbstractTestResultAction testResultAction = currentBuild.rawBuild.getAction(AbstractTestResultAction.class) + if (testResultAction != null) { + def total = testResultAction.totalCount + def failed = testResultAction.failCount + def skipped = testResultAction.skipCount + def passed = total - failed - skipped + testStatus = "Passant(s): ${passed}, Échoué(s): ${failed} ${testResultAction.failureDiffString}, Désactivé(s): ${skipped}" + } + return testStatus +}