Puede enviar su código a axe DevTools Linter para que se verifique si hay problemas de accesibilidad como parte de una compilación de Jenkins. Esta guía muestra cómo configurar un paso de compilación en Jenkins para invocar axe DevTools Linter Connector e informar a Jenkins sobre cualquier error de accesibilidad encontrado.
Requisitos
Para agregar axe DevTools Linter a las compilaciones de Jenkins, debe tener instalado el siguiente software:
- Jenkins. Consulte Instalación de Jenkins para obtener instrucciones sobre cómo configurar Jenkins.
- axe DevTools Linter y conector. Consulte Configuración del servidor local y Uso del conector axe DevTools Linter para obtener instrucciones de configuración.
- El script de compilación axe-linter-jenkins-sonarqube.sh . Las instrucciones para instalar este script se encuentran en la siguiente sección.
Instalación del script de construcción de Jenkins
Debería tener un archivo tar comprimido que contenga el script de construcción de Jenkins de muestra. El archivo tar debe llamarse axeScripts.tar.gz. Puedes extraer el script escribiendo lo siguiente:
tar xvfz axeScripts.tar.gz
Debería haber un archivo extraído del archivo comprimido, axe-linter-jenkins-sonarqube.sh. Edite el script para reflejar la URL y el puerto correctos de su instancia de axe DevTools Linter (ya sea SaaS o local). Hay dos variables de entorno en el script en las líneas 12 y 13 que es posible que deba cambiar, como se muestra a continuación:
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000
Ahora cree un directorio en /opt con la cuenta de administrador usando el siguiente comando:
sudo mkdir /opt/axeScripts
Copia el script a /opt/axeScripts:
sudo cp axe-linter-jenkins-sonarqube.sh /opt/axeScripts
Establezca el indicador de ejecución del script:
sudo chmod +x /opt/axeScripts/axe-linter-jenkins-sonarqube.sh
Agregar un paso de construcción
Para este ejemplo, utilizará un proyecto existente y simplemente agregará un nuevo paso de construcción.
Seleccione el trabajo que desea modificar y elija Configurar en el panel izquierdo. Luego, selecciona la pestaña Compilar para desplazarte hasta la sección Compilar, donde elegirás el menú desplegable Añadir paso de compilación y seleccionarás Ejecutar shell.
En el nuevo paso de compilación Ejecutar terminal , ingresa lo siguiente en el cuadro de texto Comando :
/opt/axeScripts/axe-linter-jenkins-sonarqube.sh
Seleccione el botón Avanzado... en este paso de compilación para establecer el código de salida que indicará un error a Jenkins. Ingrese 1 en el cuadro de texto Código de salida para marcar la compilación como inestable . El script devuelve 1 si hay algún error de accesibilidad.
Seleccione Guardar o Aplicar para aceptar los cambios.
El script de compilación
El script axe-linter-jenkins-sonarqube.sh ejecuta el axe DevTools Linter Connector sobre los archivos en el directorio raíz de la compilación de Jenkins y genera un informe, axe-linter-report.json. Luego, el script busca errores en el informe y reporta el error devolviendo 1, lo que hace que la compilación se marque como inestable en Jenkins.
El código fuente del script de compilación se muestra a continuación:
#!/bin/bash
# axe-linter-jenkins-sonarqube.sh
# This script will setup the environment variables needed for axe-linter-connector
# and execute axe-linter-connector. The output file will be reviewed and call back with exit codes:
## 0 - No Accessibility Defects
## 1 - axe DevTools Linter Detected Accessibility Defects
## 2 - Execution problem, or axe DevTools Linter unavailable.
echo "axe DevTools Linter Jenkins SonarQube Starting $(date)"
# Setup variables for axe DevTools Linter
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000
# Configure outfile: output in Generic Issue Import Format for SonarQube in execution directory.
OutFile="axe-linter-report.json"
# Remove previous results
rm $OutFile
# execute axe-linter-connector
axe-linter-connector -s . -d .
echo "Checking for Results $(date)"
if [ ! -f "$OutFile" ];
then
echo "$OutFile Does Not Exit"
exit 2
elif cat "$OutFile" | grep -q "BUG"; then
echo "axe DevTools Linter Accessibility Defect Detected"
exit 1
else
echo "No axe DevTools Linter Bugs Detected"
fi
exit 0
El resultado de este script es un simple aprobado/reprobado dependiendo de si axe DevTools Linter encuentra algún error de accesibilidad. No se envía ninguna otra información a Jenkins. Sin embargo, el informe generado, axe-linter-report.json , contiene información más específica sobre los errores de accesibilidad: nombre de archivo, número de línea e información de error de accesibilidad. Una forma de capturar esta información es importar el informe a SonarQube. Para obtener más información, consulte Uso de axe DevTools Linter con SonarQube