Commit cb9a4c42 authored by Mayra Cabrera's avatar Mayra Cabrera

Merge branch 'a11y-gitlab-script' into 'master'

Use packaged script from GitLab accessibility image

See merge request gitlab-org/gitlab!26687
parents 27a133fc 9a102f49
---
title: Generate JSON-formatted a11y CI artifacts
merge_request: 26687
author:
type: added
...@@ -21,32 +21,34 @@ analyzed to a file called `accessibility`. ...@@ -21,32 +21,34 @@ analyzed to a file called `accessibility`.
## Configure Accessibility Testing ## Configure Accessibility Testing
This example shows how to run [pa11y](https://pa11y.org/) This example shows how to run [pa11y](https://pa11y.org/)
on your code with GitLab CI/CD using a node Docker image. on your code with GitLab CI/CD using the [GitLab Accessibility Docker image](https://gitlab.com/gitlab-org/ci-cd/accessibility).
For GitLab 12.8 and later, to define the `a11y` job, you must For GitLab 12.9 and later, to define the `a11y` job, you must
[include](../../../ci/yaml/README.md#includetemplate) the [include](../../../ci/yaml/README.md#includetemplate) the
[`Accessibility.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml) [`Accessibility.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml)
included with your GitLab installation, as shown below. included with your GitLab installation, as shown below.
For GitLab versions earlier than 12.8, you can copy and use the job as
defined in that template.
Add the following to your `.gitlab-ci.yml` file: Add the following to your `.gitlab-ci.yml` file:
```yaml ```yaml
variables: variables:
a11y_urls: "https://about.gitlab.com" a11y_urls: "https://about.gitlab.com https://gitlab.com/users/sign_in"
include: include:
- remote: "https://gitlab.com/gitlab-org/gitlab/-/raw/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml" - template: "Verify/Accessibility.gitlab-ci.yml"
``` ```
The example above will create an `a11y` job in your CI/CD pipeline and will run creates an `a11y` job in your CI/CD pipeline, runs
Pa11y against the webpage you defined in `a11y_urls` to build a report. Pa11y against the webpages defined in `a11y_urls`, and builds an HTML report for each.
NOTE: **Note:** The report for each URL is saved as an artifact that can be [viewed directly in your browser](../../../ci/pipelines/job_artifacts.md#browsing-artifacts).
Only one URL may be currently passed into `a11y_urls`.
A single `accessibility.json` artifact is created and saved along with the individual HTML reports.
It includes report data for all URLs scanned.
The full HTML Pa11y report will be saved as an artifact that can be [viewed directly in your browser](../../../ci/pipelines/job_artifacts.md#browsing-artifacts). NOTE: **Note:**
For GitLab versions earlier than 12.9, you can use `include:remote` and use a
link to the [current template in `master`](https://gitlab.com/gitlab-org/gitlab/-/raw/master/lib/gitlab/ci/templates/Verify/Accessibility.gitlab-ci.yml)
NOTE: **Note:** NOTE: **Note:**
The job definition provided by the template does not support Kubernetes yet. The job definition provided by the template does not support Kubernetes yet.
......
...@@ -8,20 +8,12 @@ stages: ...@@ -8,20 +8,12 @@ stages:
a11y: a11y:
stage: accessibility stage: accessibility
image: node image: registry.gitlab.com/gitlab-org/ci-cd/accessibility:5.3.0-gitlab.2
script: script: /gitlab-accessibility.sh $a11y_urls
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
- echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \
- apt-get update && \
- apt-get install -y google-chrome-stable && \
- rm -rf /var/lib/apt/lists/*
- npm install pa11y@5.3.0 pa11y-reporter-html@1.0.0
- 'echo { \"chromeLaunchConfig\": { \"args\": [\"--no-sandbox\"] }, \"includeWarnings\": true, \"reporter\": \"html\" } > pa11y.json'
- './node_modules/.bin/pa11y $a11y_urls > accessibility.html'
allow_failure: true allow_failure: true
artifacts: artifacts:
when: always when: always
expose_as: 'accessibility' expose_as: 'Accessibility Reports'
paths: ['accessibility.html'] paths: ['reports/']
rules: rules:
- if: $a11y_urls - if: $a11y_urls
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment