Utilizzo di Axe DevTools Linter con Bitbucket Pipelines
Come configurare un passo di Bitbucket Pipelines per controllare il codice alla ricerca di problemi di accessibilità usando Axe DevTools Linter
Puoi inviare il tuo codice a Axe DevTools Linter per essere verificato per problemi di accessibilità come parte di una build di Bitbucket Pipelines. A differenza di GitHub, non esiste una pipe dedicata di Bitbucket per Axe DevTools Linter, quindi questa guida mostra come invocare il Axe DevTools Linter Connector direttamente come un passo nel tuo bitbucket-pipelines.yml.
Requisiti
- Un repository Bitbucket con Pipelines abilitato.
- Node.js e npm disponibili nell'immagine del pipeline (l'immagine predefinita di Bitbucket Pipelines include entrambi) in modo che il Connector possa essere installato con npm. Vedi Installazione di Axe DevTools Linter Connector come un pacchetto npm.
- Una chiave API o una chiave di licenza per autorizzare il Connector. Vedi Scelta della Configurazione Corretta per come il tuo modello di distribuzione (SaaS, cloud privato o on-premise) determina quale utilizzare.
Passo 1: Aggiungi una Variabile di Repository per la Tua Chiave
Aggiungi la tua chiave come variabile protetta del repository in modo che non sia esposta nei log del tuo pipeline. Vai alla pagina Impostazioni del repository del tuo repository, poi Variabili del repository, e aggiungi una delle seguenti, contrassegnata Protetto:
AXE_LINTER_API_KEYper una chiave APIAXE_LINTER_LICENSE_KEYper una chiave di licenza
Per maggiori informazioni, consulta la documentazione di Bitbucket su variabili e segreti del repository.
Passo 2: Aggiungi un Passo al Pipeline
Deque raccomanda il linting locale (come mostrato di seguito) per Bitbucket Pipelines: è significativamente più veloce e, con una chiave di licenza, evita anche il problema se i runner ospitati di Bitbucket possano raggiungere il tuo server Axe DevTools Linter.
Aggiungi un passo al tuo bitbucket-pipelines.yml che installa il Connector e lo esegue con l'opzione --local. Il linting locale analizza i tuoi file sul runner del pipeline stesso anziché inviarli a un server, quindi funziona lo stesso modo indipendentemente dal fatto che la tua distribuzione sottostante sia SaaS, cloud privato o on-premise.
Con una Chiave di Licenza
L'uso di una chiave di licenza significa che il Connector non effettua alcuna chiamata di rete:
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 Chiave API
L'uso di una chiave API richiede ancora che il Connector raggiunga un server di autenticazione per convalidare la chiave e registrare l'uso, anche 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 --localPer Axe DevTools Linter SaaS, il server di autenticazione predefinito (https://axe.deque.com) viene usato automaticamente. I clienti del cloud privato devono impostare la variabile d'ambiente AXE_SERVICE_URL all'URL di autenticazione della propria istanza di cloud privato prima di eseguire il Connector.
Linting Basato su Server (Alternativa)
Se non vuoi eseguire il linting localmente, puoi invece inviare i file a un server Axe DevTools Linter omettendo --local e specificando --url. Quale server tu possa raggiungere dipende dal tuo modello di distribuzione:
- SaaS: i runner ospitati di Bitbucket possono raggiungere il server SaaS di Deque senza alcun setup aggiuntivo, poiché è già raggiungibile da internet.
- On-premises: non esporre il tuo server on-prem a internet solo per consentire ai runner ospitati di Bitbucket di raggiungerlo. Invece, usa un runner auto-ospitati di Bitbucket in modo che il tuo passo di pipeline venga eseguito all'interno della tua rete, nello stesso modo in cui il tuo server on-prem viene raggiunto da altri strumenti interni.
Risultati del Passo nel Pipeline
Il Connector scrive un report di accessibilità nella directory di destinazione (axe-linter-report.json di default), contenente gli errori specifici di accessibilità trovati, inclusi nome del file e numero di riga. Le violazioni di accessibilità da sole non cambiano il codice di uscita del Connector o fanno fallire il passo di Bitbucket; il Connector esce con un codice diverso da zero solo in caso di un problema con la scansione stessa, come un'opzione mancante, un server irraggiungibile o una chiave rifiutata. Consulta Codici di Uscita per l'elenco completo.
Se vuoi che il passo del pipeline fallisca quando vengono trovate violazioni di accessibilità, aggiungi un passo di script che ispeziona il report generato ed esce con un codice diverso da zero, simile allo script di build mostrato in Uso di Axe DevTools Linter con Jenkins.
Prossimi Passi
Per informazioni sulle regole usate da Axe DevTools Linter per controllare il tuo codice, consulta Regole di Accessibilità. Se desideri inviare il report a SonarQube, vedi Uso di Axe DevTools Linter con SonarQube.
