Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 43 additions & 6 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Every declared showcase group runs against the font-enabled native host.
# Every one of the 675 declared outcomes runs against the font-enabled native
# host. The matrix partitions the complete corpus; it is not a smoke suite.
name: QA

on:
Expand All @@ -8,7 +9,7 @@ on:
workflow_dispatch:

jobs:
rendered-outcomes:
build:
runs-on: ubicloud-standard-4
steps:
- uses: actions/checkout@v4
Expand All @@ -25,6 +26,42 @@ jobs:
- name: Build
run: bun run build

- name: Store the production build
uses: actions/upload-artifact@v4
with:
name: production-build
path: dist
retention-days: 1

rendered-outcomes:
needs: build
runs-on: ubicloud-standard-4
strategy:
fail-fast: false
matrix:
include:
- suite: theme-controls
groups: "theming-controls"
- suite: theme-workflows
groups: "theming-workflows actions calendar"
- suite: theme-colors
groups: "theming-colors coverage"
- suite: theme-behavior
groups: "theming-behavior data-display input"
- suite: theme-preview
groups: "theming-preview docs feedback layout navigation showcase surfaces unlisted"
- suite: theme-model
groups: "theming-model"
name: Rendered outcomes (${{ matrix.suite }})
steps:
- uses: actions/checkout@v4

- name: Restore the production build
uses: actions/download-artifact@v4
with:
name: production-build
path: dist

- name: Headless browser host
id: qa
uses: pathscale/chuzz/.github/actions/headless-host@master
Expand All @@ -38,12 +75,12 @@ jobs:
# only; every declared transition is still required.
QA_TIMEOUT_SCALE: 2
run: |
for group in \
actions calendar coverage data-display docs feedback input \
layout navigation showcase surfaces theming unlisted
status=0
for group in ${{ matrix.groups }}
do
ps-qa --app tests/ps-qa/ps-qa.ron \
qa-hosted \
--host "${{ steps.qa.outputs.host }}" \
--page dist --checks tests/ps-qa/checks "$group"
--page dist --checks tests/ps-qa/checks "$group" || status=$?
done
exit "$status"
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ The kitchen sink demo and documentation for our UI components.
## Native QA

Build an uncompressed QA bundle, then run every declared outcome with the font-enabled chuzz host
and ps-qa 0.7.2 or newer:
and ps-qa 0.7.3 or newer:

```sh
bun run build:apps
Expand All @@ -14,9 +14,11 @@ ps-qa --app tests/ps-qa/ps-qa.ron qa-hosted \
--checks tests/ps-qa/checks
```

The UI 3.2.3 candidate build passes all 675 native checks across 13 groups,
The UI 3.2.3 build passes all 675 native checks across 18 groups,
including Calendar selection, month navigation, and keyboard and pointer-driven
Slider and Color Picker outcomes. The release gate includes every group.
Slider and Color Picker outcomes. The release gate must run all 675 checks. CI
partitions those same checks across six jobs at clean browser-state boundaries;
no release-gate job substitutes a smoke suite or drops a group.
The Layouts route uses its own document marker, and decorative cards are
articles rather than controls that promise an action.

Expand Down
Loading
Loading