Skip to content

Accessibility engineering review for Link component. #14568

Accessibility engineering review for Link component.

Accessibility engineering review for Link component. #14568

Workflow file for this run

name: CI
on:
push:
branches:
- main
- next-major
pull_request:
merge_group:
branches:
- main
- next-major
types:
- checks_requested
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Check for unformatted files
run: npm run format:diff
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint JavaScript
run: npm run lint
- name: Lint markdown
run: npm run lint:md
test:
strategy:
fail-fast: false
matrix:
react: [17, 18]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Set React version
run: node script/set-react-version.js ${{ matrix.react }}
- name: Install dependencies
if: ${{ matrix.react == 17 }}
run: npm install --legacy-peer-deps
- name: Install dependencies
if: ${{ matrix.react == 18 }}
run: npm ci
- name: Build
run: npm run build
- name: Test
run: npm run test -- --coverage
env:
REACT_VERSION_17: ${{ matrix.react == 17 }}
type-check:
strategy:
fail-fast: false
matrix:
react: [17, 18]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Set React version
run: node script/set-react-version.js ${{ matrix.react }}
- name: Install dependencies
if: ${{ matrix.react == 17 }}
run: npm install --legacy-peer-deps
- name: Install dependencies
if: ${{ matrix.react != 17 }}
run: npm ci
- name: Type check
run: npm run test:type-check
examples:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Install examples dependencies
working-directory: examples/nextjs
run: npm ci
- name: Build examples
working-directory: examples/nextjs
run: npm run build
vrt-runner:
runs-on: ubuntu-latest-8-cores
strategy:
fail-fast: false
matrix:
shard: [1, 2]
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build storybook
run: npx storybook build
- name: Install browsers
run: npx playwright install --with-deps
- name: Run storybook
id: storybook
run: |
npx serve -l 6006 storybook-static &
pid=$!
echo "pid=$pid" >> $GITHUB_OUTPUT
sleep 5
- name: Run VRT
run: npx playwright test --grep @vrt --shard="${{ matrix.shard }}/${{ strategy.job-total }}"
- name: Stop storybook
run: kill ${{ steps.storybook.outputs.pid }}
- name: Upload report
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: vrt-${{ matrix.shard }}
path: .playwright/report
vrt:
if: ${{ always() }}
runs-on: ubuntu-latest
needs: vrt-runner
steps:
- name: Check vrt-runner job status
if: ${{ needs.vrt-runner.result == 'failure' }}
run: exit 1
aat-runner:
runs-on: ubuntu-latest-8-cores
strategy:
fail-fast: false
matrix:
shard: [1, 2]
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build storybook
run: npx storybook build
- name: Install browsers
run: npx playwright install --with-deps
- name: Run storybook
id: storybook
run: |
npx serve -l 6006 storybook-static &
pid=$!
echo "pid=$pid" >> $GITHUB_OUTPUT
sleep 5
- name: Run AAT
run: npx playwright test --grep @aat --shard="${{ matrix.shard }}/${{ strategy.job-total }}"
- name: Stop storybook
run: kill ${{ steps.storybook.outputs.pid }}
- name: Upload axe reports
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: axe-${{ matrix.shard }}
path: .playwright/axe
- name: Upload report
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: aat-${{ matrix.shard }}
path: .playwright/report
aat:
if: ${{ always() }}
runs-on: ubuntu-latest
needs: aat-runner
steps:
- name: Check aat-runner job status
if: ${{ needs.aat-runner.result == 'failure' }}
run: exit 1
build-components-json:
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- uses: actions/checkout@v3
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
token: ${{ steps.generate_token.outputs.token }}
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build components.json
run: npm run build:components.json
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'Update generated/components.json'
sizes:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Get export sizes
run: node script/get-export-sizes.js