Repository navigation
fix(mobile): keep reception lot cards within 412px viewport #1910
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Quality | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| - 'feat/**' | |
| - 'docs/**' | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: quality-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7.0.1 | |
| - name: Setup Node | |
| uses: actions/setup-node@v7.0.0 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| - name: Install locked dependencies | |
| run: npm ci | |
| - name: Lint, typecheck and build | |
| run: npm run quality | |
| - name: Migration inventory contract | |
| run: node scripts/migration-inventory-smoke.mjs | |
| - name: Start production preview | |
| run: | | |
| npm run preview -- --host 127.0.0.1 > /tmp/pescamar-preview.log 2>&1 & | |
| echo $! > /tmp/pescamar-preview.pid | |
| - name: Wait for production preview | |
| run: | | |
| for i in {1..20}; do | |
| if curl --fail --silent http://127.0.0.1:4173/ > /dev/null; then exit 0; fi | |
| sleep 1 | |
| done | |
| cat /tmp/pescamar-preview.log | |
| exit 1 | |
| - name: Release smoke | |
| run: node scripts/release-smoke.mjs | |
| - name: Navigation flow contract | |
| run: node scripts/navigation-flow-smoke.mjs | |
| - name: UX language and navigation contract | |
| run: node scripts/ux-language-smoke.mjs | |
| - name: Task hierarchy contract | |
| run: node scripts/task-hierarchy-smoke.mjs | |
| - name: Mobile and accessibility contract | |
| run: node scripts/mobile-accessibility-smoke.mjs | |
| - name: Minimum-team operational flow contract | |
| run: node scripts/minimum-team-flow-smoke.mjs | |
| - name: Lot next-action continuity contract | |
| run: node scripts/lot-action-continuity-smoke.mjs | |
| - name: Inherited physical context contract | |
| run: node scripts/inherited-physical-context-smoke.mjs | |
| - name: Cold sensor ingest contract | |
| run: node scripts/cold-sensor-ingest-smoke.mjs | |
| - name: Seafood lineage contract | |
| run: node scripts/seafood-lineage-smoke.mjs | |
| - name: Physical Event Graph lineage contract | |
| run: node scripts/physical-lineage-smoke.mjs | |
| - name: Lineage intelligence UI contract | |
| run: node scripts/lineage-intelligence-ui-smoke.mjs | |
| - name: Operational Intelligence overview contract | |
| run: node scripts/operational-intelligence-overview-smoke.mjs | |
| - name: EdgeVision foundation contract | |
| run: node scripts/edgevision-foundation-smoke.mjs | |
| - name: Uni Vision learning contract | |
| run: node scripts/uni-vision-learning-smoke.mjs | |
| - name: External Uni reference provenance contract | |
| run: node scripts/sea-urchin-external-reference-smoke.mjs | |
| - name: Reception Vision provenance contract | |
| run: node scripts/reception-vision-provenance-smoke.mjs | |
| - name: Organization context contract | |
| run: node scripts/organization-context-smoke.mjs | |
| - name: Integration data plane contract | |
| run: node scripts/integration-data-plane-smoke.mjs | |
| - name: GS1 identity registry contract | |
| run: node scripts/gs1-identity-smoke.mjs | |
| - name: GDST 2.0 capability foundation | |
| run: node scripts/gdst2-capability-smoke.mjs | |
| - name: EPCIS 2.0 serializer contract | |
| run: node scripts/epcis2-serializer-smoke.mjs | |
| - name: Canonical data quality contract | |
| run: node scripts/canonical-data-quality-smoke.mjs | |
| - name: Seafood AI foundation contract | |
| run: node scripts/seafood-ai-smoke.mjs | |
| - name: Seafood AI routing contract | |
| run: node scripts/seafood-ai-router-smoke.mjs | |
| - name: Seafood AI router benchmark | |
| run: node scripts/seafood-ai-router-eval.mjs | |
| - name: Seafood AI grounded answer contract | |
| run: node scripts/seafood-ai-answer-contract-eval.mjs | |
| - name: Financial read boundary contract | |
| run: node scripts/financial-read-boundary-smoke.mjs | |
| - name: Operational form safety | |
| run: node scripts/form-safety-smoke.mjs | |
| - name: Stable operator identity | |
| run: node scripts/operator-identity-smoke.mjs | |
| - name: Operational audit contracts | |
| run: node scripts/audit-smoke.mjs | |
| - name: Public production health check | |
| run: node scripts/public-health-smoke.mjs | |
| - name: Pilot telemetry contract | |
| run: node scripts/pilot-telemetry-smoke.mjs | |
| - name: EdgeVision QA gate | |
| run: node scripts/edgevision-qa-smoke.mjs | |
| - name: Endpoint SQL contracts (ephemeral Neon) | |
| env: | |
| NEON_API_KEY: ${{ secrets.NEON_API_KEY }} | |
| NEON_PROJECT_ID: ${{ vars.NEON_PROJECT_ID }} | |
| run: node scripts/endpoint-sql-contracts.mjs | |
| - name: Install pinned browser test runtime | |
| run: | | |
| npm install --no-save --ignore-scripts @playwright/test@1.55.0 | |
| npx playwright install --with-deps chromium | |
| - name: Desktop and mobile Chromium smoke | |
| run: npx playwright test | |
| - name: Publish browser evidence | |
| if: always() | |
| uses: actions/upload-artifact@v7.0.1 | |
| with: | |
| name: browser-release-evidence | |
| path: | | |
| test-results/ | |
| playwright-report/ | |
| if-no-files-found: ignore | |
| retention-days: 14 | |
| - name: Preview logs on failure | |
| if: failure() | |
| run: cat /tmp/pescamar-preview.log || true |