Uso de Axe DevTools Linter con Bitbucket Pipelines
Cómo configurar un paso de Bitbucket Pipelines para verificar el código en busca de problemas de accesibilidad utilizando Axe DevTools Linter
Puede enviar su código a Axe DevTools Linter para verificar problemas de accesibilidad como parte de una construcción de Bitbucket Pipelines. A diferencia de GitHub, no hay un pipe dedicado de Bitbucket para Axe DevTools Linter, por lo que esta guía muestra cómo invocar directamente el Conector de Axe DevTools Linter como un paso en su bitbucket-pipelines.yml.
Requisitos
- Un repositorio de Bitbucket con Pipelines habilitados.
- Node.js y npm disponibles en la imagen del pipeline (la imagen predeterminada de Bitbucket Pipelines incluye ambos) para que el Conector pueda instalarse con npm. Ver Instalación del Conector de Axe DevTools Linter como paquete npm.
- Una clave API o una clave de licencia para autorizar el Conector. Consulte Elegir la configuración adecuada para saber cómo su modelo de implementación (SaaS, nube privada o local) determina cuál utiliza.
Paso 1: Agregar una variable de repositorio para su clave
Agregue su clave como variable de repositorio segura para que no se exponga en los registros de su pipeline. Vaya a la página de Configuración del repositorio de su repositorio, luego a Variables del repositorio, y agregue uno de los siguientes, marcado como Seguro:
AXE_LINTER_API_KEYpara una clave APIAXE_LINTER_LICENSE_KEYpara una clave de licencia
Para más información, consulte la documentación de Bitbucket sobre variables y secretos del repositorio.
Paso 2: Agregar un paso de pipeline
Deque recomienda el linting local (como se muestra a continuación) para Bitbucket Pipelines: es significativamente más rápido, y, con una clave de licencia, también evita la duda de si los runners alojados de Bitbucket pueden alcanzar su servidor de Axe DevTools Linter.
Agregue un paso a su bitbucket-pipelines.yml que instale el Conector y lo ejecute con la opción --local. El linting local analiza sus archivos en el runner propio del pipeline en lugar de enviarlos a un servidor, por lo que funciona de la misma manera independientemente de si su implementación subyacente es SaaS, nube privada o local.
Con una clave de licencia
Usar una clave de licencia significa que el Conector no realiza llamadas a la red en absoluto:
image: node:20
pipelines:
default:
- step:
name: Lint for accessibility issues
script:
- npm install -g @axe-devtools/axe-linter-connector
- axe-linter-connector -s . -d . --license-key $AXE_LINTER_LICENSE_KEY --localCon una clave API
Usar una clave API todavía requiere que el Conector alcance un servidor de autenticación para validar la clave y registrar el uso, incluso con --local:
image: node:20
pipelines:
default:
- step:
name: Lint for accessibility issues
script:
- npm install -g @axe-devtools/axe-linter-connector
- axe-linter-connector -s . -d . --api-key $AXE_LINTER_API_KEY --localPara Axe DevTools Linter SaaS, el servidor de autenticación predeterminado (https://axe.deque.com) se utiliza automáticamente. Los clientes de nube privada deben establecer la variable de entorno AXE_SERVICE_URL a la URL de autenticación de su instancia de nube privada antes de ejecutar el Conector.
Linting basado en servidor (alternativa)
Si no desea realizar linting local, puede en su lugar enviar archivos a un servidor de Axe DevTools Linter omitiendo --local y especificando --url. A qué servidor puede acceder depende de su modelo de implementación:
- SaaS: los runners alojados de Bitbucket pueden alcanzar el servidor SaaS de Deque sin configuración adicional, ya que ya es accesible por internet.
- En las instalaciones: no exponga su servidor local a internet solo para que los runners alojados de Bitbucket puedan alcanzarlo. En su lugar, use un Runner autoalojado de Bitbucket para que su paso de pipeline se ejecute dentro de su propia red, de la misma manera que su servidor local es alcanzado por otras herramientas internas.
Resultados del paso de pipeline
El Conector escribe un informe de accesibilidad en el directorio de destino (axe-linter-report.json por defecto), que contiene los errores específicos de accesibilidad encontrados, incluyendo el nombre de archivo y el número de línea. Las violaciones de accesibilidad por sí solas no cambian el código de salida del Conector ni fallan el paso de Bitbucket; el Conector solo sale con un código distinto de cero por un problema con el escaneo en sí, como una opción faltante, un servidor inaccesible o una clave rechazada. Consulte Códigos de salida para la lista completa.
Si desea que el paso del pipeline falle cuando se encuentren violaciones de accesibilidad, agregue un paso de script que inspeccione el informe generado y salga con un código distinto de cero, similar al script de construcción mostrado en Uso de Axe DevTools Linter con Jenkins.
Próximos pasos
Para información sobre las reglas utilizadas por Axe DevTools Linter para verificar su código, consulte Reglas de accesibilidad. Si desea integrar el informe en SonarQube, consulte Uso de Axe DevTools Linter con SonarQube.
