When smoke.yml runs via workflow_call from another repo (peptide-repo-core, peptide-starter-theme, etc.), GitHub Actions checks out the CALLER's repo by default. The caller has no package-lock.json, so setup-node's npm cache lookup fails with 'Some specified paths were not resolved'. Fix: add repository/ref to the checkout step so we always fetch peptide-e2e regardless of who calls the workflow. This ensures npm ci and Playwright have the correct test code and dependency lockfile.
80 lines
2.2 KiB
YAML
Executable File
80 lines
2.2 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
|
|
#
|
|
# IMPORTANT: When called via workflow_call, GitHub Actions checks out the
|
|
# CALLER's repo by default, not peptide-e2e. We explicitly checkout
|
|
# peptide-e2e so npm ci and Playwright have the correct test code + lock file.
|
|
|
|
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 peptide-e2e (explicit — workflow_call defaults to caller repo)
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: peptiderepo/peptide-e2e
|
|
ref: main
|
|
|
|
- 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
|