From 19884e67190a2cf5e60c2ec39a33c3ad9d387968 Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 26 Dec 2019 12:10:23 +0100 Subject: [PATCH] =?UTF-8?q?Lighthouse:=20execution=20de=20pa11y=20pour=20c?= =?UTF-8?q?ompl=C3=A9ter=20l'audit=20d'accessibilit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/com/cadoles/lighthouse/Dockerfile | 2 + .../com/cadoles/lighthouse/patty.json.tmpl | 6 +++ resources/com/cadoles/lighthouse/run-audit.sh | 13 +++++- vars/lighthouse.groovy | 42 +++++++++++-------- 4 files changed, 45 insertions(+), 18 deletions(-) create mode 100644 resources/com/cadoles/lighthouse/patty.json.tmpl diff --git a/resources/com/cadoles/lighthouse/Dockerfile b/resources/com/cadoles/lighthouse/Dockerfile index 88202e0..dbe038e 100644 --- a/resources/com/cadoles/lighthouse/Dockerfile +++ b/resources/com/cadoles/lighthouse/Dockerfile @@ -35,6 +35,7 @@ RUN apk add --no-cache \ chromium RUN npm install -g lighthouse +RUN PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install -g pa11y pa11y-reporter-html RUN adduser -D lighthouse @@ -42,6 +43,7 @@ COPY run-audit.sh /usr/local/bin/run-audit RUN chmod +x /usr/local/bin/run-audit COPY config.js.tmpl /home/lighthouse/config.js.tmpl +COPY patty.json.tmpl /home/lighthouse/patty.json.tmpl WORKDIR /home/lighthouse diff --git a/resources/com/cadoles/lighthouse/patty.json.tmpl b/resources/com/cadoles/lighthouse/patty.json.tmpl new file mode 100644 index 0000000..9e4d519 --- /dev/null +++ b/resources/com/cadoles/lighthouse/patty.json.tmpl @@ -0,0 +1,6 @@ +{ + "chromeLaunchConfig": { + "args": ["--disable-dev-shm-usage", "--no-sandbox", "--disable-gpu"], + "ignoreHTTPSErrors": true + } +} \ No newline at end of file diff --git a/resources/com/cadoles/lighthouse/run-audit.sh b/resources/com/cadoles/lighthouse/run-audit.sh index e0526fd..31d7ad3 100644 --- a/resources/com/cadoles/lighthouse/run-audit.sh +++ b/resources/com/cadoles/lighthouse/run-audit.sh @@ -1,6 +1,9 @@ #!/bin/sh +set -x + envtpl -o config.js /home/lighthouse/config.js.tmpl +envtpl -o patty.json /home/lighthouse/patty.json.tmpl mkdir -p reports rm -f reports/* @@ -14,4 +17,12 @@ lighthouse \ --output json --output html \ --output-path=lighthouse \ -- \ - "$LIGHTHOUSE_URL" \ No newline at end of file + "$LIGHTHOUSE_URL" + +export PUPPETEER_EXECUTABLE_PATH=$(which chromium-browser) + +pa11y --reporter html \ + --config ../patty.json \ + --include-warnings \ + --include-notices \ + "$LIGHTHOUSE_URL" > pa11y.report.html || exit 0 diff --git a/vars/lighthouse.groovy b/vars/lighthouse.groovy index 3f45020..ea71c05 100644 --- a/vars/lighthouse.groovy +++ b/vars/lighthouse.groovy @@ -30,7 +30,7 @@ def call() { } } - stage("Run Lighthouse audit") { + stage("Run Lighthouse and pa11y audits") { steps { script { def lighthouseImage = buildDockerImage() @@ -39,12 +39,14 @@ def call() { """ timeout(params.auditTimeout.toInteger()) { lighthouseImage.inside(dockerArgs) { - sh 'run-audit' + sh 'chown -R lighthouse: ./' + sh 'su lighthouse - /usr/local/bin/run-audit' } } } } } + } post { @@ -54,8 +56,8 @@ def call() { alwaysLinkToLastBuild: false, keepAll: true, reportDir: 'reports', - reportFiles: 'lighthouse.report.html', - reportName: "Rapport Lighthouse" + reportFiles: '*.report.html', + reportName: "Rapports d'audit" ] cleanWs() } @@ -64,10 +66,13 @@ def call() { rocketSend ( avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png', message: """ - L'audit Lighthouse pour `${params.url}` est terminé. + Les audits pour `${params.url}` sont terminés: - [Voir le rapport](${env.BUILD_URL}Rapport_20Lighthouse/) + - [Voir le rapport Lighthouse (bonnes pratiques)](${env.BUILD_URL}Rapports_20d_27audit/lighthouse.report.html) + - [Voir le rapport pa11y (accessibilité)](${env.BUILD_URL}Rapports_20d_27audit/pa11y.report.html) + [Lancer un nouvel audit](${env.BUILD_URL}../build) + @${env.BUILD_USER_ID ? env.BUILD_USER_ID : 'here'} """.stripIndent(), rawMessage: true @@ -75,17 +80,19 @@ def call() { } } failure { - rocketSend ( - avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png', - message: """ - L'audit Lighthouse pour `${params.url}` a échoué: - - [Voir le job](${env.RUN_DISPLAY_URL}) - - @${env.BUILD_USER_ID ? env.BUILD_USER_ID : 'here'} - """.stripIndent(), - rawMessage: true - ) + wrap([$class: 'BuildUser']) { + rocketSend ( + avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png', + message: """ + L'audit Lighthouse pour `${params.url}` a échoué: + + [Voir le job](${env.RUN_DISPLAY_URL}) + + @${env.BUILD_USER_ID ? env.BUILD_USER_ID : 'here'} + """.stripIndent(), + rawMessage: true + ) + } } } @@ -97,6 +104,7 @@ def buildDockerImage() { def resourceFiles = [ 'com/cadoles/lighthouse/Dockerfile', 'com/cadoles/lighthouse/config.js.tmpl', + 'com/cadoles/lighthouse/patty.json.tmpl', 'com/cadoles/lighthouse/run-audit.sh' ];