Files
ps5-payload-manager/.github/workflows/verify.yml
T

64 lines
2.2 KiB
YAML

name: Verify
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
http-responses:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build host-test environment
run: docker build -f tests/Dockerfile -t pldmgr-tests .
- name: Test backend JSON and HTTP with sanitizers and real sockets
run: docker run --rm --network=none -v "$GITHUB_WORKSPACE:/src:ro" pldmgr-tests make test-host
shared-state:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Check concurrent config, sources and history with ThreadSanitizer
run: python3 tests/run_config_tests.py --thread-sanitize
frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: npm
cache-dependency-path: frontend/package-lock.json
- run: npm ci
working-directory: frontend
- run: npm test
working-directory: frontend
- run: npm run build
working-directory: frontend
# Existing lint findings remain tracked in REMEDIATION_EXECUTION_PLAN.md.
# Promote lint to a required check when step 8a clears that baseline.
- name: Check mock server method/origin contract
run: node tests/run_mock_security_tests.mjs
- name: Build native HTTP fixture for browser security checks
run: docker build -f tests/Dockerfile -t pldmgr-browser-tests .
- name: Check Chrome actions, cross-origin attacks, unload beacons, and Vite proxy
run: |
docker run --rm -d -i --name pldmgr-browser -p 127.0.0.1:8081:8081 \
-e PLDMGR_TEST_PUBLIC=1 -e PLDMGR_TEST_PORT=8081 \
-v "$GITHUB_WORKSPACE:/src:ro" pldmgr-browser-tests \
python3 tests/run_http_tests.py --serve-only
for attempt in $(seq 1 60); do
if curl -fsS http://127.0.0.1:8081/__test_state >/dev/null; then break; fi
sleep 1
done
CHROME_BIN="$(command -v google-chrome)" node tests/run_browser_mutation_tests.mjs
- name: Stop native browser fixture
if: always()
run: docker stop pldmgr-browser 2>/dev/null || true