diff --git a/.github/workflows/check-a11y-of-changed-content.yaml b/.github/workflows/check-a11y-of-changed-content.yaml new file mode 100644 index 0000000000..6cedd42217 --- /dev/null +++ b/.github/workflows/check-a11y-of-changed-content.yaml @@ -0,0 +1,68 @@ +name: Check accessibility of changed content + +on: + workflow_dispatch: + push: + branches: + - gh-pages + pull_request: + +permissions: + contents: read + pull-requests: read + +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + +jobs: + check-a11y-of-changed-content: + name: Check accessibility of changed content + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Fetch gh-pages branch + run: >- + git fetch origin gh-pages + && git branch gh-pages origin/gh-pages; + + - name: Calculate URLs and output to JavaScript module + run: >- + chmod +x ./generate_pa11y_ci_urls_from_git_diff.sh + && ./generate_pa11y_ci_urls_from_git_diff.sh gh-pages + >> ./pa11y-ci-urls.js; + + - name: Log contents of resulting JavaScript module + run: cat ./pa11y-ci-urls.js; + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.3 + + - name: Install gems + run: bundle config path vendor/bundle && bundle install + + - name: Run the blog + run: bundle exec jekyll serve & + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20.10.x + cache: npm + + - name: Install NPM dependencies + run: npm ci + + - name: Setup Chrome + uses: browser-actions/setup-chrome@v1 + id: setup-chrome + + - name: Wait for blog to be running + run: npx wait-on http://localhost:4000 --timeout 60000 + + - name: Run pa11y-ci + run: CHROMIUM_BIN=$(which chrome) npx pa11y-ci