Skip to content

add playwright and ci action #16

add playwright and ci action

add playwright and ci action #16

Workflow file for this run

name: Lint, Build, Unit Test, and Playwright Tests
on:
workflow_dispatch:
pull_request:
branches:
- develop
- main
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install PNPM
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Build App
run: pnpm build
- name: Archive Production Artifact
uses: actions/upload-artifact@v4
with:
name: build
path: dist
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install PNPM
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Lint
run: pnpm lint
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install PNPM
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Test
run: pnpm test
uploadBuild:
needs: [build, lint, test]
name: Upload Build to S3
runs-on: ubuntu-latest
steps:
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: build
path: build
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Upload build to S3
run: aws s3 cp build s3://${{secrets.AWS_S3_PROJECT_DIRECTORY}}/${{github.sha}}/ --recursive
RunPlayWrightTests:
needs: uploadBuild
name: Run Playwright Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 21.7.3
- name: Set CI Environment Variable
run: echo "export CI=true" >> $GITHUB_ENV
# Use your base url
- name: Set Base URL
run: echo "export BASE_URL=${{secrets.BASE_URL}}" >> $GITHUB_ENV
- name: Set Cookie Env Variable
run: echo "export XSOURCECOOKIE=${{github.sha}}" >> $GITHUB_ENV
- name: Install PNPM & Dependencies
run: npm install -g pnpm && pnpm install
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
- name: Run Playwright tests
run: pnpm exec playwright test
- name: Upload Playwright Report
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
retention-days: 5