Axe Watcher negli Ambienti di Integrazione Continua (CI)
Come Axe Watcher rileva le pipeline CI e utilizza fonti canoniche per i baselines dei test di accessibilità
Quando Axe Watcher viene eseguito in integrazione continua (CI) sul ramo Git predefinito del tuo repository (ad esempio, main), quel risultato diventa la fonte canonica (l'unico baseline che ogni altra scansione viene confrontata).
Cosa Significa Fonte Canonica
- Solo il ramo predefinito è idoneo. Le esecuzioni delle pipeline sui rami delle funzionalità o sui rami delle pull request vengono registrate, ma non diventano la fonte canonica.
- L'ultima esecuzione della pipeline vince. Ogni nuova esecuzione CI sul ramo predefinito sostituisce il baseline precedente, quindi i confronti riflettono sempre lo stato CI più recente.
- Le esecuzioni locali si confrontano con il CI. Quando uno sviluppatore esegue Axe Watcher localmente, i suoi risultati vengono confrontati con l'ultima fonte canonica anziché con la propria scansione più recente. Ciò offre a ogni membro del team un punto di riferimento condiviso invece di baselines potenzialmente divergenti.
Permessi Richiesti
La chiave API utilizzata nella tua pipeline CI deve appartenere a un progetto amministratore.
I membri del progetto non amministratori non possono inviare dati attraverso una pipeline (la richiesta fallirà con un errore).
Quando configuri il tuo ambiente CI, assicurati che la chiave API sia stata generata da un account con accesso di amministratore al progetto target in Axe Developer Hub.
Esecuzioni della Pipeline su Rami Non Predefiniti
Puoi eseguire Axe Watcher in CI su qualsiasi ramo, ma il comportamento differisce dalle esecuzioni su rami predefiniti:
- I risultati sono attribuiti a "Pipeline", non all'utente individuale la cui chiave API è stata utilizzata. In Axe Developer Hub, i dati della pipeline appaiono sotto una voce dedicata "Pipeline" anziché sotto un membro specifico del team.
- Queste esecuzioni non diventano la fonte canonica. Solo le esecuzioni delle pipeline sul ramo predefinito impostano il baseline per i confronti.
- I risultati dei rami delle funzionalità sono comunque registrati. Sono visibili in Axe Developer Hub quando viene selezionata la visualizzazione "Pipeline", il che è utile per la revisione dell'accessibilità sulle pull request prima della fusione.
Rilevamento CI
Axe Watcher determina se è in esecuzione in CI tramite variabili d'ambiente:
-
Variabile standard CI: Se
CIè impostato sutrue, Watcher tratta l'esecuzione come un'esecuzione della pipeline e imposta di conseguenza la fonte canonica. La maggior parte delle piattaforme CI imposta automaticamente questo parametro (vedi Supporto della Piattaforma). -
Override esplicito:
AXE_IS_CIha la precedenza suCIquando entrambi sono presenti.Utilizza
AXE_IS_CIquando la variabileCIstandard non corrisponde alle tue esigenze:-
Abilita la modalità CI in un ambiente non standard, per esempio, un runner auto-ospitato o un'attività programmata che non imposta
CIsutrueimpostandoAXE_IS_CIsutrue. -
Disabilita la modalità CI in una pipeline, ad esempio, per eseguire una scansione esplorativa in CI senza sovrascrivere la fonte canonica impostando
AXE_IS_CIsufalse.
-
Quando AXE_IS_CI è impostato, il valore di CI viene completamente ignorato.
Supporto della Piattaforma
| Piattaforma | CI imposta true di default |
Documentazione |
|---|---|---|
| Azioni GitHub | sì | GitHub Docs - Riferimento alle Variabili |
| GitLab CI | sì | GitLab Docs - Variabili Predefinite |
| CircleCI | sì | CircleCI Docs - Valori e Variabili del Progetto |
| Bitbucket Pipelines | sì | Atlassian Support - Variabili e Segreti |
| Jenkins | no (imposta CI=true o AXE_IS_CI=true nel tuo blocco environment) |
Uso delle variabili d'ambiente |
Assicurati che CI fornisca informazioni di Git
Un progetto Git si blocca su un singolo repository al suo primo accesso riuscito, e qualsiasi esecuzione successiva che arrivi senza informazioni complete di Git viene rifiutata anziché essere accettata come priva di Git. Gli ambienti CI sono la fonte più comune di informazioni incomplete di Git:
- Cloni superficiali (
git clone --depth 1, o il comportamento di checkout predefinito di una piattaforma CI) possono omettere i dati di cui Watcher ha bisogno per rilevare il branch o il commit in modo affidabile. Aumenta la profondità del fetch o fornisci esplicitamente i campi mancanti conAxeWatcherGitInfo(Java) o i campi espliciti della configurazionegit(JavaScript/TypeScript). - Stato HEAD scollegato, comune quando CI effettua il checkout di un commit specifico anziché di un branch, può rendere il nome del branch irrilevabile. Fornisci esplicitamente il branch se la tua piattaforma non lo fornisce in un altro modo.
- Un remoto
originmancante elimina l'URL del repository che identifica a quale repository appartiene l'esecuzione.
Consulta Fornire i metadati Git per sapere come fornire questi campi esplicitamente, e Esecuzione rifiutata: Il formato dei dati o il repository non corrisponde al progetto se un'esecuzione è già stata rifiutata.
Revoca della Chiave API
Se la chiave API utilizzata nel tuo pipeline CI viene eliminata o l'account utente associato viene disattivato, le esecuzioni del pipeline non autenticheranno più con successo. I risultati registrati in precedenza rimangono visibili nell'Axe Developer Hub, ma non possono essere inviati nuovi dati finché il pipeline non viene riconfigurato con una valida chiave API amministrativa.
Per evitare fallimenti nel CI quando i membri del team lasciano o ruotano le chiavi, considera di utilizzare un account di servizio dedicato per le chiavi API del pipeline.
