Ajout d'un pipeline Lighthouse
+ améliorations/corrections sur le pipeline d'audit W3AF
This commit is contained in:
@ -8,7 +8,7 @@ def call() {
|
||||
|
||||
parameters {
|
||||
string(
|
||||
name: 'targetUrl',
|
||||
name: 'url',
|
||||
description: 'URL cible pour l\'audit'
|
||||
)
|
||||
string(
|
||||
@ -97,6 +97,7 @@ def call() {
|
||||
-e W3AF_AUTH_FORM_URL='${params.authFormUrl}'
|
||||
-e W3AF_AUTH_FORM_USERNAME='${params.authFormUsername}'
|
||||
-e W3AF_AUTH_FORM_PASSWORD='${params.authFormPassword}'
|
||||
-e W3AF_AUTH_FORM_DATA_FORMAT='${params.authFormDataFormat}'
|
||||
-e W3AF_AUTH_FORM_CHECK_URL='${params.authFormCheckUrl}'
|
||||
-e W3AF_AUTH_FORM_CHECK_STRING='${params.authFormCheckString}'
|
||||
-e W3AF_AUTH_FORM_USERNAME_FIELD='${params.authFormUsernameField}'
|
||||
|
113
vars/lighthouse.groovy
Normal file
113
vars/lighthouse.groovy
Normal file
@ -0,0 +1,113 @@
|
||||
// Pipeline d'exécution d'un audit Lighthouse
|
||||
def call() {
|
||||
pipeline {
|
||||
|
||||
agent {
|
||||
label 'docker'
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(
|
||||
name: 'url',
|
||||
description: 'URL cible pour l\'audit'
|
||||
)
|
||||
string(
|
||||
name: 'auditTimeout',
|
||||
description: "Délai maximum pour la réalisation de l'audit (en minutes)",
|
||||
defaultValue: '60'
|
||||
)
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
stage("Check parameters") {
|
||||
steps {
|
||||
script {
|
||||
if (!params.url?.trim()) {
|
||||
error("L'URL cible n'est pas définie !")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("Run Lighthouse audit") {
|
||||
steps {
|
||||
script {
|
||||
def lighthouseImage = buildDockerImage()
|
||||
def dockerArgs = """
|
||||
-e LIGHTHOUSE_URL='${params.url}'
|
||||
"""
|
||||
timeout(params.auditTimeout.toInteger()) {
|
||||
lighthouseImage.inside(dockerArgs) {
|
||||
sh 'run-audit'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
publishHTML target: [
|
||||
allowMissing: true,
|
||||
alwaysLinkToLastBuild: false,
|
||||
keepAll: true,
|
||||
reportDir: 'reports',
|
||||
reportFiles: 'lighthouse.report.html',
|
||||
reportName: "Rapport Lighthouse"
|
||||
]
|
||||
cleanWs()
|
||||
}
|
||||
success {
|
||||
wrap([$class: 'BuildUser']) {
|
||||
rocketSend (
|
||||
avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png',
|
||||
message: """
|
||||
L'audit Lighthouse pour `${params.url}` est terminé.
|
||||
|
||||
[Voir le rapport](${env.BUILD_URL}Rapport_20Lighthouse/)
|
||||
|
||||
@${env.BUILD_USER_ID ? env.BUILD_USER_ID : 'here'}
|
||||
""".stripIndent(),
|
||||
rawMessage: true
|
||||
)
|
||||
}
|
||||
}
|
||||
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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
def buildDockerImage() {
|
||||
dir ('.lighthouse') {
|
||||
def resourceFiles = [
|
||||
'com/cadoles/lighthouse/Dockerfile',
|
||||
'com/cadoles/lighthouse/config.js.tmpl',
|
||||
'com/cadoles/lighthouse/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("lighthouse:${imageTag}", ".")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user