Skip to content

another try for playwright #9

another try for playwright

another try for playwright #9

Workflow file for this run

name: Build and Test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
type-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run type checking
run: npm run type-check
format-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Check formatting
run: npm run format:check
build-library:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build library
run: npm run build
- name: Upload library build
uses: actions/upload-artifact@v4
with:
name: library-build
path: dist/
retention-days: 1
build-widget:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build widget
run: npm run build:widget
- name: Upload widget build
uses: actions/upload-artifact@v4
with:
name: widget-build
path: |
dist/widget.*
dist/style.css
retention-days: 1
test-widget:
runs-on: ubuntu-latest
needs: build-widget
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Download widget build
uses: actions/download-artifact@v4
with:
name: widget-build
path: dist/
- name: Verify downloaded files
run: |
echo "Contents of dist directory:"
ls -la dist/
echo "Checking for required files..."
test -f dist/widget.umd.js || (echo "widget.umd.js not found!" && exit 1)
test -f dist/style.css || (echo "style.css not found!" && exit 1)
echo "Contents of root directory:"
ls -la
echo "Checking test-widget-embed.html exists:"
test -f test-widget-embed.html && echo "test-widget-embed.html found" || echo "test-widget-embed.html NOT found"
- name: Install Playwright
run: npx playwright install chromium
- name: Test server availability
run: |
# Start the server in background
npx serve -l 4200 . &
SERVER_PID=$!
echo "Server started with PID: $SERVER_PID"
# Wait for server to start
sleep 5
# Test if server is running and files are accessible
echo "Testing server endpoints:"
curl -I http://localhost:4200/test-widget-embed || echo "Failed to access test-widget-embed"
curl -I http://localhost:4200/dist/widget.umd.js || echo "Failed to access widget.umd.js"
curl -I http://localhost:4200/dist/style.css || echo "Failed to access style.css"
# Kill the test server
kill $SERVER_PID
- name: Run widget tests
run: npm run test:ci:only
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
retention-days: 30