Bitbucket PipelinesでAxe DevTools Linterを使用する
Axe DevTools Linterを使用してコードのアクセシビリティ問題を確認するためのBitbucket Pipelinesステップを設定する方法
Bitbucket Pipelinesビルドの一部として、コードをAxe DevTools Linterに送信してアクセシビリティ問題をチェックできます。GitHubとは異なり、Axe DevTools Linter専用のBitbucketパイプは存在しないため、このガイドではAxe DevTools Linter Connectorを直接ステップとしてbitbucket-pipelines.ymlに組み込む方法を示します。
必要条件
- Pipelinesが有効化されたBitbucketリポジトリ。
- Node.jsとnpmがパイプラインイメージ内で利用可能(デフォルトのBitbucket Pipelinesイメージには両方が含まれています)であるため、npmでコネクターをインストールできます。Axe DevTools Linter Connectorをnpmパッケージとしてインストールするを参照してください。
- コネクターを認証するためのAPIキーまたはライセンスキー。どのデプロイメントモデル(SaaS、プライベートクラウド、オンプレミス)が使用されるかによってどちらを利用するかが決まります。詳細は適切なセットアップの選択を参照してください。
ステップ 1: キーのためのリポジトリ変数を追加する
パイプラインログにキーが公開されないよう、セキュアなリポジトリ変数としてキーを追加します。リポジトリのリポジトリ設定ページに移動し、次にリポジトリ変数に進んで、セキュアで示されている以下のいずれかを追加します:
- APIキーの場合は
AXE_LINTER_API_KEY - ライセンスキーの場合は
AXE_LINTER_LICENSE_KEY
詳細については、Bitbucketのリポジトリ変数およびシークレットに関する独自のドキュメントを参照してください。
ステップ 2: パイプラインステップを追加する
DequeはBitbucket Pipelinesに対してローカルリンティング(以下に示すとおり)を推奨しています。それは大幅に速く、ライセンスキーがあれば、BitbucketのホストされたランナーがAxe DevTools Linterサーバーに全く接続できるかどうかという問題も回避できます。
bitbucket-pipelines.ymlにステップを追加し、コネクターをインストールして--localオプションで実行します。ローカルリンティングは、ファイルをサーバーに送信するのではなくパイプラインの独自のランナーで分析するため、基盤となるデプロイメントがSaaSであれプライベートクラウドであれオンプレミスであれ、同じ方法で動作します。
ライセンスキーを使用する場合
ライセンスキーを使用する場合、コネクターは全くネットワークコールを行いません:
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 --localAPIキーを使用する場合
APIキーを使用する場合、--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 --localAxe DevTools Linter SaaSの場合、デフォルトの認証サーバー(https://axe.deque.com)が自動的に使用されます。プライベートクラウドの顧客は、コネクターを実行する前にAXE_SERVICE_URL環境変数をプライベートクラウドインスタンスの認証URLに設定する必要があります。
サーバー ベースのリンティング(代替)
ローカルでリンティングを行いたくない場合は、ファイルを--localを省略して--urlを指定して、Axe DevTools Linterサーバーに送信することもできます。どのサーバーに接続できるかはデプロイメントモデルによります:
- SaaS: Bitbucketのホストされたランナーは既にインターネットに接続可能であるため、DequeのSaaSサーバーに追加の設定なしで接続できます。
- オンプレミス: Bitbucketのホストされたランナーが到達できるようにオンプレミスサーバーをインターネットに公開しないでください。代わりに、Bitbucketセルフホストランナーを使用して、パイプラインステップをあなたのネットワーク内で実行し、他の内部ツールと同様にオンプレミスサーバーが到達可能になるようにしてください。
パイプラインステップの結果
コネクターは、特定のアクセシビリティエラーを含むアクセシビリティレポートを出力先ディレクトリ(デフォルトではaxe-linter-report.json)に書き込みます。アクセシビリティ違反が発生しても、コネクターの終了コードが変更されBitbucketステップが失敗することはありません。コネクターは、オプションが欠如している、サーバーにアクセスできない、キーが拒否されたなど、スキャン自体に問題がある場合にのみ非ゼロで終了します。完全なリストについては、終了コードを参照してください。
アクセシビリティ違反が発見されたときにパイプラインステップを失敗させたい場合、生成されたレポートを検査し、非ゼロで終了するスクリプトステップを追加してください。JenkinsでAxe DevTools Linterを使用するに示されたビルドスクリプトと同様です。
次のステップ
Axe DevTools Linterがコードをチェックするために使用するルールについての情報はアクセシビリティルールをご覧ください。また、レポートをSonarQubeに入力したい場合はSonarQubeでAxe DevTools Linterを使用するをご覧ください。
