Skip to content

feat: 🎸 adding playwright #227

feat: 🎸 adding playwright

feat: 🎸 adding playwright #227

Workflow file for this run

name: Github Actions CI
on:
push:
branches: [main]
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
cache-dependency-path: "**/package-lock.json"
- run: npm ci
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
needs: [build]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- name: Install npm
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm install
- name: Run lint
run: npm run lint
- name: Run format
run: npm run format
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
needs: [build]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- name: Install npm
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm install
- name: Run Coverage
run: npm run coverage
e2e_visual_a11y:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
needs: [build]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- name: Install npm
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm install
- name: Run Build
run: npm run build
- name: Playwright install
run: npx playwright install --with-deps
- name: Install Percy CLI
run: npm install --save-dev @percy/cli
- name: Run Percy Snapshot
run: npx percy snapshot dist/
- name: Run e2e
run: npm run e2e:test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 30
env:
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get main
run: git fetch origin main
- name: Install dependencies
run: npm install
- name: Install Jest globally
run: sudo npm install -g jest
- name: Run Tests
run: npm run browserupdate-coverage
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
lighthouseci:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
needs: [build]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm install && npm install -g @lhci/[email protected]
- run: npm run build
- run: lhci autorun
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
deploy:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20]
needs: [lint, test, e2e_visual_a11y, lighthouseci, sonarcloud]
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
run: |
npm install
npm run build
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages # The branch the action should deploy to.
folder: dist # The folder the action should deploy.
clean: true # Automatically remove deleted files from the deploy branch