Adds decodeURIComponent
to handle non-latin hash characters
#39796
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: Simorgh CI - Licences, Dependencies, Lint, Chromatic UI, NPM Audit | |
on: | |
pull_request: | |
branches: | |
- '**' | |
push: | |
branches: | |
- latest | |
permissions: | |
statuses: write | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x] | |
env: | |
CI: true | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: '0' | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Cache Node Modules | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
node_modules | |
ws-nextjs-app/node_modules | |
key: node-modules-${{ hashFiles('yarn.lock', 'ws-nextjs-app/yarn.lock') }} | |
- name: Install Node Modules | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: ./scripts/installNodeModules.sh | |
- name: Chromatic UI Tests | |
uses: chromaui/action@latest | |
if: github.ref != 'refs/heads/latest' && github.event.pull_request.head.repo.full_name == 'bbc/simorgh' # Only run when not on latest or not a fork. | |
with: | |
token: ${{ secrets.SIMORGH_DEV_STORYBOOK_RELEASE }} | |
projectToken: ${{ secrets.CHROMATIC_APP_CODE }} | |
buildScriptName: 'build:storybook' | |
exitOnceUploaded: true | |
onlyChanged: true | |
- name: Chromatic UI Tests - Latest | |
uses: chromaui/action@latest | |
if: github.ref == 'refs/heads/latest' # Only run on latest branch | |
with: | |
token: ${{ secrets.SIMORGH_DEV_STORYBOOK_RELEASE }} | |
projectToken: ${{ secrets.CHROMATIC_APP_CODE }} | |
buildScriptName: 'build:storybook' | |
exitOnceUploaded: true | |
onlyChanged: true | |
autoAcceptChanges: true # Auto accept changes to accept a new baseline when merging to latest | |
- name: Get Storybook Branch Permalink | |
uses: actions/github-script@v6 | |
id: get-storybook-permalink | |
with: | |
script: | | |
const storybookBranch = '${{ github.event.pull_request.head.ref }}'.toLowerCase().replaceAll(/[/.]/g, '-').trim('-').substring(0, 37); | |
const storybookPermalink = `https://${storybookBranch}--5d28eb3fe163f6002046d6fa.chromatic.com`; | |
core.setOutput('STORYBOOK_PERMALINK', storybookPermalink); | |
- name: Publish Storybook Branch Permalink | |
if: github.event.pull_request.head.repo.full_name == 'bbc/simorgh' # Only run when not on a fork | |
run: | | |
curl \ | |
-X POST \ | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.event.pull_request.head.sha }} \ | |
-d '{ | |
"state": "success", | |
"context": "Storybook Permalink", | |
"description": "View the latest changes on Storybook for this PR", | |
"target_url": "${{ steps.get-storybook-permalink.outputs.STORYBOOK_PERMALINK }}" | |
}' \ | |
--fail | |
- name: Duplicate Dependency Checker | |
run: yarn test:dependencies | |
- name: Linting | |
run: yarn test:lint | |
- name: NPM Audit | |
run: yarn npm audit --all --severity low --no-deprecations |