CI環境でのAxe Watcher
Axe WatcherがCIパイプラインを検出し、アクセシビリティテストの基準を標準ソースから利用する方法
Axe Watcherが継続的インテグレーション(CI)であなたのリポジトリのデフォルトのGitブランチ(例: main)上で実行されると、その結果が標準ソース(すべてのスキャンと比較される単一の基準)になります。
標準ソースの意味
- デフォルトブランチのみが該当します。 パイプラインはフィーチャーブランチまたはプルリクエストブランチで実行され、記録されますが、それらが標準ソースにはなりません。
- 最新のパイプライン実行が優先されます。 デフォルトブランチでの新しいCIランが前の基準を置き換え、比較は常に最新のCI状態を反映します。
- ローカル実行はCIと比較されます。 開発者がAxe Watcherをローカルで実行すると、その結果は自分の最新スキャンではなく、最新の標準ソースと比較されます。これにより、すべてのチームメンバーが共有リファレンスポイントを持ち、個別の、潜在的に異なる基準を避けることができます。
必要な権限
あなたのCIパイプラインで使用されるAPIキーは、プロジェクト管理者に属している必要があります。
管理者でないプロジェクトメンバーは、パイプラインを通じてデータを送信することはできません(リクエストはエラーで失敗します)。
CI環境を構成する際は、APIキーがAxe Developer Hub内の対象プロジェクトに管理者アクセスを持つアカウントから生成されたことを確認してください。
非デフォルトブランチでのパイプライン実行
任意のブランチでCIでAxe Watcherを実行できますが、その動作はデフォルトブランチでの実行とは異なります:
- 結果は「パイプライン」に帰属します、使用されたAPIキーの個々のユーザーには帰属しません。Axe Developer Hubでは、パイプラインデータは特定のチームメンバーの下ではなく、専用の「パイプライン」項目の下に表示されます。
- これらの実行は標準ソースになりません。 デフォルトブランチでのパイプライン実行のみが比較の基準を設定します。
- フィーチャーブランチの結果も記録されます。 これらは「パイプライン」ビューを選択すると、Axe Developer Hubで確認でき、マージ前にプルリクエストのアクセシビリティをレビューするのに役立ちます。
CI検出
Axe Watcherは環境変数を通じてCIで実行されているかどうかを判断します:
-
標準CI変数:
CIがtrueに設定されている場合、Watcherは実行をパイプライン実行として処理し、それに応じて標準ソースを設定します。ほとんどのCIプラットフォームはこれを自動的に設定します(プラットフォームサポートを参照)。 -
明示的な上書き:
AXE_IS_CIはCIが存在する場合、そちらが優先されます。標準の
CI変数がニーズに合わない場合にAXE_IS_CIを使用してください:-
非標準環境でのCIモードの有効化、例えば
AXE_IS_CIをtrueに設定することによって、CIをtrueに設定しないセルフホストランナーまたはスケジュールタスクなど。 -
パイプラインでのCIモードの無効化、例えば、標準ソースの上書きをせずにCIで探索的スキャンを実行するために
AXE_IS_CIをfalseに設定することを通じて。
-
AXE_IS_CIが設定されている場合、CIの値は完全に無視されます。
プラットフォームサポート
| プラットフォーム | CIがデフォルトでtrueを設定 |
ドキュメント |
|---|---|---|
| GitHub Actions | はい | GitHub Docs - 変数リファレンス |
| GitLab CI | はい | GitLab Docs - 定義済み変数 |
| CircleCI | はい | CircleCI ドキュメント - プロジェクトの値と変数 |
| Bitbucket パイプライン | はい | Atlassian サポート - 変数とシークレット |
| Jenkins | いいえ(environment ブロック内で CI=true または AXE_IS_CI=true を設定) |
環境変数の使用 |
CIがGit情報を提供することを確認する
Gitプロジェクトは最初の成功したセッションで単一のリポジトリに固定され、その後に完全なGit情報なしで到着する実行はGitなしと見なされる代わりに拒否されます。CI環境は、不完全なGit情報の最も一般的な原因です:
- 浅いクローン(
git clone --depth 1やCIプラットフォームのデフォルトのチェックアウト動作)がWatcherがブランチやコミットを確実に検出するために必要なデータを省くことがあります。フェッチ深度を増やすか、AxeWatcherGitInfo(Java)またはgit構成の明示的なフィールド(JavaScript/TypeScript)で欠落したフィールドを明示的に指定してください。 - 切り離されたHEADの状態、CIがブランチではなく特定のコミットをチェックアウトする場合によく見られ、ブランチ名が検出不可能になることがあります。プラットフォームが他の方法で提供しない場合は、明示的にブランチを指定してください。
originリモートがありませんは、実行が属するリポジトリを特定するリポジトリURLを削除します。
これらのフィールドをどのように明示的に指定するかについてはGitメタデータの提供を、すでに実行が拒否された場合は実行が拒否されました:データの形状またはリポジトリがプロジェクトと一致しませんを参照してください。
API キーの失効
CI パイプラインで使用されている API キーが削除されたり、関連するユーザーアカウントが無効化された場合、パイプラインの実行は正常に認証されなくなります。以前に記録された結果は Axe Developer Hub に表示されたままですが、有効な管理 API キーでパイプラインを再設定するまで新しいデータを送信することはできません。
チームメンバーが離職したり、キーをローテーションする際に CI の失敗を避けるため、パイプライン API キーには専用のサービスアカウントを使用することを検討してください。
