release: ship AuraGlass 3.2.0 native app chrome #146
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: AuraGlass Pipeline Validation | |
| on: | |
| push: | |
| branches: [main, develop, feat/glass-*] | |
| pull_request: | |
| branches: [main, develop] | |
| permissions: | |
| contents: read | |
| issues: write | |
| pull-requests: write | |
| jobs: | |
| glass-quality-gates: | |
| name: Glass Quality Gates | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: TypeScript type checking | |
| run: npm run typecheck | |
| - name: ESLint with glass rules | |
| run: npm run lint:check | |
| - name: Glass token validation | |
| run: node scripts/verify-glass-pipeline.js | |
| - name: WCAG AA contrast tests | |
| run: npm test -- glass-contrast.spec.ts | |
| - name: Build verification | |
| run: npm run build | |
| - name: Dependency sovereignty gate | |
| run: npm run lint:no-core-ui-deps | |
| - name: Tree-shaking gate | |
| run: npm run test:tree-shaking -- --strict | |
| - name: Glass surface count verification | |
| run: | | |
| if [ ! -f "src/styles/glass.generated.css" ]; then | |
| echo "❌ Generated CSS file missing" | |
| exit 1 | |
| fi | |
| surface_count=$(grep -c "glass-.*-level" src/styles/glass.generated.css || true) | |
| expected_count=24 # 6 intents × 4 elevations | |
| if [ "$surface_count" -lt "$expected_count" ]; then | |
| echo "❌ Insufficient glass surfaces: $surface_count < $expected_count" | |
| exit 1 | |
| fi | |
| echo "✅ Glass surface validation passed: $surface_count surfaces" | |
| - name: Deprecated API detection | |
| run: npm run glass:validate | |
| - name: Glass token consistency check | |
| run: npm run glass:validate | |
| - name: Performance budget check | |
| run: | | |
| css_size=$(wc -c < src/styles/glass.generated.css) | |
| max_size=30720 # 30KB limit | |
| if [ "$css_size" -gt "$max_size" ]; then | |
| echo "❌ Generated CSS too large: ${css_size} bytes > ${max_size} bytes" | |
| exit 1 | |
| fi | |
| echo "✅ CSS size within budget: ${css_size} bytes" | |
| - name: Accessibility compliance verification | |
| run: | | |
| echo "Running comprehensive accessibility tests..." | |
| npm test -- --testPathPattern=a11y --verbose | |
| - name: App-chrome axe verification | |
| run: npm run test:a11y:app-chrome | |
| - name: API surface lock verification | |
| run: | | |
| if [ ! -f "src/types/glass-api-stable.ts" ]; then | |
| echo "❌ Stable API types missing" | |
| exit 1 | |
| fi | |
| if [ ! -f "src/docs/GLASS_API_REFERENCE.md" ]; then | |
| echo "❌ API documentation missing" | |
| exit 1 | |
| fi | |
| echo "✅ API surface properly locked and documented" | |
| glass-visual-regression: | |
| name: Glass Visual Regression | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate visual test pages | |
| run: node scripts/glass-visual-test-generator.js | |
| - name: Archive visual test artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: glass-visual-tests | |
| path: reports/glass/visual-tests/ | |
| - name: Comment on PR with test links | |
| continue-on-error: true | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| if (fs.existsSync('reports/glass/visual-tests/comprehensive-test.html')) { | |
| await github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: '🎨 **Glass Visual Test Pages Generated**\n\nDownload the `glass-visual-tests` artifact from this workflow run to view comprehensive visual validation pages for all glass surfaces.' | |
| }); | |
| } | |
| next-integration-smoke: | |
| name: Next.js npm Integration | |
| runs-on: ubuntu-latest | |
| needs: glass-quality-gates | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run Next.js integration smoke test | |
| run: npm run test:integration:next | |
| vite-integration-smoke: | |
| name: Vite npm Integration | |
| runs-on: ubuntu-latest | |
| needs: glass-quality-gates | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run Vite integration smoke test | |
| run: npm run test:integration:vite | |
| app-chrome-visual-baselines: | |
| name: App Chrome Visual Baselines | |
| runs-on: ubuntu-latest | |
| needs: glass-quality-gates | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install Playwright Chromium | |
| run: npx playwright install --with-deps chromium | |
| - name: Run app-chrome visual baseline gate | |
| run: npm run test:visual:app-chrome | |
| - name: Archive app-chrome visual artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: app-chrome-visual-baselines | |
| path: | | |
| reports/3.2-release/app-chrome-visual-evidence.json | |
| reports/3.2-release/app-chrome-visual-evidence.md | |
| reports/3.2-release/app-chrome-visuals/ | |
| reports/3.2-release/app-chrome-visual-server.log |