コードをJenkinsビルドの一環として、アクセシビリティの問題をチェックするためにAxe DevTools Linterに送信できます。このガイドでは、Jenkinsでビルドステップを設定して、 Axe DevTools Linter Connector を呼び出し、発見されたアクセシビリティエラーをJenkinsに報告する方法を示します。
要件
JenkinsビルドにAxe DevTools Linterを追加するには、以下のソフトウェアをインストールする必要があります。
- Jenkins。 Jenkinsのインストール を参照して、Jenkinsのセットアップ方法を確認してください。
- Axe DevTools LinterとConnector。 オンプレミスサーバーのセットアップ または Dockerでのインストール、および Axe DevTools Linter Connectorの使用 を参照して、セットアップ方法を確認してください。
- ビルドスクリプト。
axe-linter-jenkins-sonarqube.shこのスクリプトをインストールするための手順は次のセクションにあります。
Jenkinsビルドスクリプトのインストール
サンプルJenkinsビルドスクリプトを含む圧縮tarファイルを持っているはずです。tarファイルは axeScripts.tar.gzと呼ばれるべきです。次のコマンドを入力することでスクリプトを解凍できます。
tar xvfz axeScripts.tar.gzアーカイブから1つのファイルが抽出されるはずです。 axe-linter-jenkins-sonarqube.shスクリプトを編集して、Axe DevTools Linterインスタンスの正しいURLとポート(SaaSかオンプレミスか)を反映させてください。スクリプトには、12行目と13行目に変更が必要になるかもしれない環境変数が2つあります。
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000次のコマンドを使用して、管理者アカウントで /opt にディレクトリを作成してください。
sudo mkdir /opt/axeScriptsスクリプトを /opt/axeScriptsにコピーしてください。
sudo cp axe-linter-jenkins-sonarqube.sh /opt/axeScriptsスクリプトの実行フラグを設定してください。
sudo chmod +x /opt/axeScripts/axe-linter-jenkins-sonarqube.shビルドステップの追加
この例では、既存のプロジェクトを使用し、新しいビルドステップを追加するだけです。
修正したいジョブを選択し、左側のパネルから 構成 を選択します。その後、 ビルド タブを選択してビルドセクションに進み、 ビルドステップの追加 ドロップダウンを選択して、 シェルを実行を選択します。
新しい シェルを実行 ビルドステップで、 コマンド テキストボックスに次を入力してください。
/opt/axeScripts/axe-linter-jenkins-sonarqube.shこのビルドステップの 詳細設定... ボタンを選択して、Jenkinsにエラーを示す終了コードを設定します。 1 を入力してください。 ビルドを不安定に設定するための終了コード テキストボックス。このスクリプトは、アクセシビリティエラーがある場合に 1 を返します。
「 保存 」または「 適用 」を選択して、変更を受け入れます。
ビルドスクリプト
この axe-linter-jenkins-sonarqube.sh スクリプトは、Jenkinsビルドのルートディレクトリ内のファイルに対してAxe DevTools Linter Connectorを実行し、レポートを生成します。 axe-linter-report.jsonその後、このスクリプトはレポート内のエラーを検索し、 1を返してエラーを報告し、その結果、ビルドはJenkins内で 不安定 とマークされます。
ビルドスクリプトのソースコードは以下に示されています:
#!/bin/bash
# axe-linter-jenkins-sonarqube.sh
# This script will setup the environment variables needed for axe-linter-connector
# and execute axe-linter-connector. The output file will be reviewed and call back with exit codes:
## 0 - No Accessibility Defects
## 1 - Axe DevTools Linter Detected Accessibility Defects
## 2 - Execution problem, or Axe DevTools Linter unavailable.
echo "Axe DevTools Linter Jenkins SonarQube Starting $(date)"
# Setup variables for Axe DevTools Linter
export AXE_LINTER_SERVER_URL=http://localhost
export AXE_LINTER_SERVER_PORT=3000
# Configure outfile: output in Generic Issue Import Format for SonarQube in execution directory.
OutFile="axe-linter-report.json"
# Remove previous results
rm $OutFile
# execute axe-linter-connector
axe-linter-connector -s . -d .
echo "Checking for Results $(date)"
if [ ! -f "$OutFile" ];
then
echo "$OutFile Does Not Exit"
exit 2
elif cat "$OutFile" | grep -q "BUG"; then
echo "Axe DevTools Linter Accessibility Defect Detected"
exit 1
else
echo "No Axe DevTools Linter Bugs Detected"
fi
exit 0このスクリプトの結果は、Axe DevTools Linterによってアクセシビリティエラーが見つかるかどうかによる単純な合否です。Jenkinsに他の情報は送信されません。生成されたレポートは、 axe-linter-report.json ただし、ファイル名や行番号、アクセシビリティエラーの情報など、より具体的な情報を含んでいます。この情報をキャプチャする方法の一つとして、このレポートをSonarQubeにインポートすることがあります。詳細については、 SonarQubeとAxe DevTools Linterを使用する
