Você pode enviar o seu código para o Axe DevTools Linter para verificar problemas de acessibilidade como parte de uma construção no Jenkins. Este guia mostra como configurar uma etapa de construção no Jenkins para invocar o Conector Axe DevTools Linter e reportar ao Jenkins quaisquer erros de acessibilidade encontrados.
Requisitos
Para adicionar o Axe DevTools Linter às construções do Jenkins, você precisa ter o seguinte software instalado:
- Jenkins. Veja Instalando o Jenkins para instruções sobre como configurar o Jenkins.
- Axe DevTools Linter e Conector. Veja Configurando o Servidor Local ou Instalando com Docker, e Usando o Conector Axe DevTools Linter para instruções de configuração.
- O
axe-linter-jenkins-sonarqube.shscript de construção. Instruções para instalar este script estão na próxima seção.
Instalando o Script de Construção do Jenkins
Você deve ter um arquivo tar compactado contendo o script de construção do Jenkins de exemplo. O arquivo tar deve se chamar axeScripts.tar.gz. Você pode extrair o script digitando o seguinte:
tar xvfz axeScripts.tar.gzDeve haver um arquivo extraído do arquivo compactado, axe-linter-jenkins-sonarqube.sh. Edite o script para refletir a URL e porta corretas da sua instância do Axe DevTools Linter (seja SaaS ou local). Há duas variáveis de ambiente no script nas linhas 12 e 13 que você pode precisar alterar, conforme mostrado abaixo:
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000Agora crie um diretório em /opt com a conta de administrador usando o seguinte comando:
sudo mkdir /opt/axeScriptsCopie o script para /opt/axeScripts:
sudo cp axe-linter-jenkins-sonarqube.sh /opt/axeScriptsDefina a permissão de execução do script:
sudo chmod +x /opt/axeScripts/axe-linter-jenkins-sonarqube.shAdicionando uma Etapa de Construção
Para este exemplo, você usará um projeto existente e simplesmente adicionará uma nova etapa de construção.
Escolha o trabalho que você gostaria de modificar e escolha Configurar no painel à esquerda. Em seguida, selecione a aba Construção para rolar até a seção Construção, onde você escolherá o dropdown Adicionar etapa de construção e selecionará Executar shell.
Na nova etapa de construção Executar shell , digite o seguinte na caixa de texto Comando :
/opt/axeScripts/axe-linter-jenkins-sonarqube.shSelecione o botão Avançado... nesta etapa de construção para definir o código de saída que indicará um erro para o Jenkins. Digite 1 na caixa de texto Código de saída para definir construção instável caixa de texto. O script retorna 1 se houverem erros de acessibilidade.
Escolha Salvar ou Aplicar para aceitar suas alterações.
O Script de Construção
O axe-linter-jenkins-sonarqube.sh script executa o Axe DevTools Linter Connector nos arquivos no diretório raiz da construção Jenkins e gera um relatório, axe-linter-report.json. O script então busca no relatório por quaisquer erros e os reporta retornando 1, o que faz com que a construção seja marcada como instável no Jenkins.
O código-fonte do script de construção é mostrado abaixo:
#!/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 0O resultado deste script é uma simples avaliação de sucesso/falha dependendo se foram encontrados erros de acessibilidade pelo Axe DevTools Linter. Nenhuma outra informação é enviada para o Jenkins. O relatório gerado, axe-linter-report.json no entanto, contém informações mais específicas sobre erros de acessibilidade: nome do arquivo, número da linha e informações sobre o erro de acessibilidade. Uma maneira de capturar essas informações é importar o relatório para o SonarQube. Para mais informações, veja Usando Axe DevTools Linter com SonarQube
