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ônicaSignifica
- 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 |
Certifique-se de que o CI Forneça Informações do Git
Um projeto Git fica bloqueado em um único repositório em sua primeira sessão bem-sucedida, e qualquer execução posterior que chegue sem informações completas do Git é rejeitada em vez de aceita como sem Git. Os ambientes de CI são a fonte mais comum de informações incompletas do Git:
- Clones superficiais (
git clone --depth 1ou o comportamento padrão de checkout de uma plataforma de CI) pode omitir os dados que o Watcher precisa para detectar de forma confiável o branch ou commit. Aumente a profundidade de busca ou forneça os campos ausentes explicitamente comAxeWatcherGitInfo(Java) ou os campos explícitos da configuraçãogit(JavaScript/TypeScript). - Estado de HEAD destacado, comum quando o CI verifica um commit específico em vez de uma branch, pode deixar o nome da branch indetectável. Forneça a branch explicitamente se sua plataforma não a disponibilizar de outra forma.
- Um remote
originausente remove a URL do repositório que identifica a qual repositório a execução pertence.
Veja Fornecendo Metadados do Git para saber como fornecer esses campos explicitamente, e Execução Rejeitada: Forma de Dados ou Repositório Não Corresponde ao Projeto se uma execução já foi rejeitada.
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.
