def audit(String url, Map params = [:]) { def reporter = params.reporter ? params.reporter : 'html' def pa11yImage = buildDockerImage() def dockerArgs = """ -e PA11Y_REPORTER='${reporter}' -e PA11Y_URL='${url}' """ pa11yImage.inside(dockerArgs) { sh 'chown -R pa11y: ./' def report = sh( script: 'su pa11y - /usr/local/bin/run-audit', returnStdout: true ) return report } } def buildDockerImage() { dir ('.pa11y') { def resourceFiles = [ 'com/cadoles/pa11y/Dockerfile', 'com/cadoles/pa11y/patty.json.tmpl', 'com/cadoles/pa11y/run-audit.sh' ]; for (res in resourceFiles) { def fileContent = libraryResource res def fileName = res.substring(res.lastIndexOf("/")+1) writeFile file:fileName, text:fileContent } def safeJobName = URLDecoder.decode(env.JOB_NAME).toLowerCase().replace('/', '-').replace(' ', '-') def imageTag = "${safeJobName}-${env.BUILD_ID}" return docker.build("pa11y:${imageTag}", ".") } }