feat(Toast): Expose dismissToast function #3132
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build & Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
Build_icon_library: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Build icon-library | |
run: | | |
pnpm --prefix packages/icon-library run build | |
- name: Build design-tokens | |
run: pnpm --prefix packages/design-tokens run build | |
- name: Create tar | |
run: | | |
cp -R packages/icon-library/dist distil | |
cp -R packages/design-tokens/dist distdt | |
tar -czvf dist.tar.gz distil distdt | |
- name: Persist artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: ./dist.tar.gz | |
Security_audit: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Run audit | |
run: pnpm run audit | |
Check_commits: | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name == 'pull_request' }} | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Check commits | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { runCommitLint } = await import('${{ github.workspace }}/scripts/github-actions/runCommitlint.mjs') | |
await runCommitLint({ github, context, core }) | |
const { checkForFixups } = await import('${{ github.workspace }}/scripts/github-actions/checkForFixups.mjs') | |
await checkForFixups({ github, context, core }) | |
Lint_react-component-library: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Get dependencies & run lint | |
run: | | |
pnpm --prefix packages/react-component-library run lint | |
Build_react-component-library: | |
runs-on: ubuntu-latest | |
needs: [Build_icon_library, Lint_react-component-library] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
with: | |
unpack-prebuilt-libraries: true | |
- name: Build | |
run: | | |
pnpm --prefix packages/react-component-library run build | |
Test_react-component-library: | |
runs-on: ubuntu-latest | |
needs: [Build_icon_library, Lint_react-component-library] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
with: | |
unpack-prebuilt-libraries: true | |
- name: Jest | |
env: | |
JEST_JUNIT_OUTPUT_DIR: test-results/jest | |
JEST_JUNIT_OUTPUT_NAME: react-component-results.xml | |
run: | | |
pnpm --prefix packages/react-component-library run test --ci --coverage --silent --no-cache --reporters=default --reporters=jest-junit --runInBand --testResultsProcessor=jest-sonar-reporter | |
- name: SonarCloud Scan | |
uses: Royal-Navy/design-system-sonarcloud-action@master | |
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
Build_storybook_e2e: | |
runs-on: ubuntu-latest | |
needs: [Build_icon_library, Lint_react-component-library] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
with: | |
unpack-prebuilt-libraries: true | |
- name: Build Storybook | |
run: | | |
pnpm --prefix packages/react-component-library run storybook:static:test | |
tar -czvf /tmp/storybook-static-e2e.tar.gz packages/react-component-library/.static_storybook | |
- name: Upload Storybook artefact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: storybook-static-e2e | |
path: /tmp/storybook-static-e2e.tar.gz | |
retention-days: 1 | |
Test-e2e_react-component-library: | |
name: Test-e2e_react-component-library (${{ matrix.shard }}/${{ matrix.total_shards }}) | |
runs-on: ubuntu-latest | |
needs: [Build_storybook_e2e] | |
strategy: | |
matrix: | |
shard: [1, 2, 3] | |
total_shards: [3] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
with: | |
unpack-prebuilt-libraries: true | |
- name: Cache Playwright browsers | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ms-playwright | |
key: playwright-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
playwright-${{ runner.os }}- | |
- name: Install Playwright | |
run: pnpm --prefix packages/react-component-library run test:e2e:install | |
- name: Download pre-built storybook | |
uses: actions/download-artifact@v4 | |
with: | |
name: storybook-static-e2e | |
path: /tmp | |
- name: Unpack pre-built storybook | |
run: tar -xzf /tmp/storybook-static-e2e.tar.gz | |
- name: Run e2e tests | |
env: | |
NODE_OPTIONS: --dns-result-order=ipv4first | |
run: pnpm --prefix packages/react-component-library run test:e2e --shard ${{ matrix.shard }}/${{ matrix.total_shards }} | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-test-results-${{ matrix.shard }} | |
path: packages/react-component-library/e2e-output/ | |
Test_design-tokens: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Lint | |
run: pnpm --prefix packages/design-tokens run lint | |
- name: Build | |
run: pnpm --prefix packages/design-tokens run build | |
- name: Run tests | |
run: pnpm --prefix packages/design-tokens run test | |
Build_storybook: | |
runs-on: ubuntu-latest | |
needs: [Build_icon_library, Lint_react-component-library] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
with: | |
unpack-prebuilt-libraries: true | |
- name: Build Storybook | |
env: | |
CHROMATIC_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
CHROMATIC_BRANCH: ${{ github.head_ref || github.ref_name }} | |
CHROMATIC_SLUG: ${{ github.event.pull_request.head.repo.full_name || github.repository }} | |
run: | | |
pnpm --prefix packages/react-component-library run storybook:static | |
echo "$CHROMATIC_SHA" > packages/react-component-library/.static_storybook/sha | |
echo "$CHROMATIC_BRANCH" > packages/react-component-library/.static_storybook/branch | |
echo "$CHROMATIC_SLUG" > packages/react-component-library/.static_storybook/slug | |
- name: Upload Storybook artefact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: storybook-static | |
path: packages/react-component-library/.static_storybook | |
if-no-files-found: error | |
include-hidden-files: true | |
Test_a11y: | |
runs-on: ubuntu-latest | |
needs: [Build_storybook] | |
steps: | |
- name: Git clone repository | |
uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/prepare-environment | |
- name: Cache Playwright browsers | |
uses: actions/cache@v4 | |
with: | |
path: '~/.cache/ms-playwright' | |
key: playwright-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
playwright-${{ runner.os }}- | |
- name: Attach workspace | |
uses: actions/download-artifact@v4 | |
with: | |
name: storybook-static | |
path: packages/react-component-library/.static_storybook | |
- name: Set up Playwright | |
working-directory: packages/react-component-library | |
run: | | |
pnpm run playwright:install | |
- name: Run accessibility tests | |
env: | |
NODE_OPTIONS: --dns-result-order=ipv4first | |
working-directory: packages/react-component-library | |
run: | | |
pnpm run ci:test:a11y |