Files
pleno-vue/.github/workflows/test-graph-node.yml
T
Jeppe B 12a2d73b32 Replace monolithic E2E matrices with dependency-aware component CI
Generate small reusable component partitions with explicit provider dependencies, GitHub-hosted concurrency, fail-closed evidence, and exact mobile store gates. Include the literal-i18n fix from #206 so validation covers the exact post-merge tree.
2026-07-20 23:52:15 +02:00

85 lines
2.5 KiB
YAML

name: Dependency Graph Node
on:
workflow_call:
inputs:
node:
description: Stable test-graph node identifier.
required: true
type: string
lane:
description: Contract or Playwright project lane.
required: true
type: string
partitions:
description: JSON array of one-based partition numbers.
required: false
default: "[1]"
type: string
permissions:
contents: read
jobs:
test:
name: ${{ inputs.node }} / ${{ inputs.lane }} / ${{ matrix.partition }}
runs-on: ubuntu-24.04
timeout-minutes: 45
container:
image: mcr.microsoft.com/playwright:v1.58.2-noble
strategy:
fail-fast: false
max-parallel: 100
matrix:
partition: ${{ fromJSON(inputs.partitions) }}
env:
CI: "true"
PLAYWRIGHT_ARTIFACT_NAMESPACE: graph-${{ inputs.node }}-${{ inputs.lane }}-${{ matrix.partition }}
PLAYWRIGHT_REPORTER_MODE: line-html
PLAYWRIGHT_VIDEO_MODE: off
PLAYWRIGHT_WORKERS: 3
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci --legacy-peer-deps
- name: Run dependency graph node
run: >-
node scripts/test-graph/run-node-tests.mjs
--node "${{ inputs.node }}"
--lane "${{ inputs.lane }}"
--partition "${{ matrix.partition }}"
--partitions "${{ strategy.job-total }}"
- name: Upload dependency graph result
if: always()
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: test-graph-result-${{ inputs.node }}-${{ inputs.lane }}-${{ matrix.partition }}-${{ github.run_id }}-${{ github.run_attempt }}
path: output/test-graph-results
if-no-files-found: warn
retention-days: 3
- name: Upload failure diagnostics
if: failure() || cancelled()
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: test-graph-${{ inputs.node }}-${{ inputs.lane }}-${{ matrix.partition }}-${{ github.run_id }}-${{ github.run_attempt }}
path: |
output/playwright/${{ env.PLAYWRIGHT_ARTIFACT_NAMESPACE }}
output/playwright/${{ env.PLAYWRIGHT_ARTIFACT_NAMESPACE }}-*
if-no-files-found: ignore
retention-days: 3