Files
peptide-e2e/.github/workflows/smoke.yml

73 lines
1.8 KiB
YAML
Executable File

# smoke.yml — Playwright smoke tests against staging.peptiderepo.com
#
# Called by other repos via workflow_call as a deploy gate.
# Secrets required: STAGING_WP_ADMIN_USER, STAGING_WP_ADMIN_PASSWORD
name: Smoke Tests (Staging)
on:
workflow_dispatch:
inputs:
base_url:
description: 'Target URL (defaults to staging)'
required: false
default: 'https://staging.peptiderepo.com'
workflow_call:
inputs:
base_url:
type: string
required: false
default: 'https://staging.peptiderepo.com'
secrets:
STAGING_WP_ADMIN_USER:
required: true
STAGING_WP_ADMIN_PASSWORD:
required: true
jobs:
smoke:
name: Playwright smoke suite
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install chromium --with-deps
- name: Run smoke tests
env:
BASE_URL: ${{ inputs.base_url }}
WP_ADMIN_USER: ${{ secrets.STAGING_WP_ADMIN_USER }}
WP_ADMIN_PASSWORD: ${{ secrets.STAGING_WP_ADMIN_PASSWORD }}
run: npx playwright test
- name: Upload test report
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 14
- name: Upload failure screenshots/videos
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-failures
path: test-results/
retention-days: 7