Axe Watcher em Ambientes de Integração Contínua (CI)
Como o Axe Watcher detecta pipelines CI e usa fontes canônicas para bases de teste de acessibilidade
Quando o Axe Watcher roda em integração contínua (CI) no ramo Git padrão do seu repositório (por exemplo, main), esse resultado se torna a fonte canônica (a única base de referência com a qual todos os outros escaneamentos são comparados).
O que Fonte Canônica Significa
- Apenas o ramo padrão qualifica. Execuções de pipeline em ramos de funcionalidade ou de pull request são registradas, mas não se tornam a fonte canônica.
- A última execução de pipeline ganha. Cada nova execução de CI no ramo padrão substitui a base anterior, de modo que as comparações sempre refletem o estado mais recente do CI.
- Execuções locais são comparadas com o CI. Quando um desenvolvedor roda o Axe Watcher localmente, seus resultados são comparados com a fonte canônica mais recente em vez de com seu próprio escaneamento mais recente. Isso proporciona a cada membro da equipe uma referência compartilhada em vez de bases de referência individuais e potencialmente divergentes.
Permissões Necessárias
A chave da API usada em seu pipeline CI deve pertencer a um projeto admin.
Membros de projeto não administradores não podem enviar dados por meio de um pipeline (a solicitação falhará com um erro).
Ao configurar seu ambiente CI, certifique-se de que a chave da API foi gerada a partir de uma conta com acesso de administrador ao projeto alvo no Axe Developer Hub.
Execuções de Pipeline em Ramos Não Padrão
Você pode rodar o Axe Watcher em CI em qualquer ramo, mas o comportamento difere das execuções no ramo padrão:
- Resultados são atribuídos a "Pipeline", não ao usuário individual cuja chave da API foi usada. No Axe Developer Hub, os dados do pipeline aparecem em uma entrada dedicada "Pipeline" em vez de em um membro específico da equipe.
- Essas execuções não se tornam a fonte canônica. Apenas execuções de pipeline no ramo padrão estabelecem a base para comparações.
- Resultados de ramo de funcionalidade ainda são registrados. Eles são visíveis no Axe Developer Hub quando a visualização "Pipeline" é selecionada, o que é útil para revisar a acessibilidade em pull requests antes da mesclagem.
Detecção de CI
O Axe Watcher determina se está rodando em CI através de variáveis de ambiente:
-
Variável padrão de CI: Se
CIfor definido comotrue, o Watcher trata a execução como uma execução de pipeline e define a fonte canônica de acordo. A maioria das plataformas CI define isso automaticamente (veja Suporte à Plataforma). -
Substituição explícita:
AXE_IS_CItem precedência sobreCIquando ambos estão presentes.Use
AXE_IS_CIquando a variável padrãoCInão corresponder às suas necessidades:-
Habilitar modo CI em um ambiente não padrão, por exemplo, um runner auto-hospedado ou tarefa agendada que não define
CIparatrueao definirAXE_IS_CIparatrue. -
Desabilitar modo CI em um pipeline, por exemplo, para executar um escaneamento exploratório em CI sem sobrescrever a fonte canônica ao definir
AXE_IS_CIparafalse.
-
Quando AXE_IS_CI é definido, o valor de CI é totalmente ignorado.
Suporte à Plataforma
| Plataforma | CI define true por padrão |
Documentação |
|---|---|---|
| GitHub Actions | sim | GitHub Docs - Referência de Variáveis |
| GitLab CI | sim | GitLab Docs - Variáveis Predefinidas |
| CircleCI | sim | Documentação CircleCI - Valores e Variáveis do Projeto |
| Bitbucket Pipelines | sim | Suporte Atlassian - Variáveis e Segredos |
| Jenkins | não (configure CI=true ou AXE_IS_CI=true no seu bloco environment) |
Usando variáveis de ambiente |
Revogação de Chave API
Se a chave API utilizada no seu pipeline de CI for excluída ou se a conta de usuário associada for desativada, as execuções do pipeline não serão mais autenticadas com sucesso. Resultados registrados anteriormente permanecem visíveis no Axe Developer Hub, mas nenhum novo dado pode ser enviado até que o pipeline seja reconfigurado com uma chave API de admin válida.
Para evitar falhas de CI quando membros da equipe saem ou rotacionam chaves, considere usar uma conta de serviço dedicada para chaves API do pipeline.
