Repository navigation
feat(webview): view-local buffer reads and setValue persistence (N3, split 3/5 of #1546) #6098
Workflow file for this run
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: Visual Regression | |
| on: | |
| workflow_dispatch: | |
| # No `paths` filter: this workflow backs the required `webview-visual` | |
| # check. GitHub keeps path-filtered workflows "pending" on pull requests | |
| # that do not match the filter, which blocks merging for a required check. | |
| # The merge_group event ignores path filters, so the queue is unaffected. | |
| pull_request: | |
| types: [opened, reopened, ready_for_review, synchronize] | |
| merge_group: | |
| types: [checks_requested] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| webview-visual: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| container: | |
| image: mcr.microsoft.com/playwright:v1.64.1-noble@sha256:47b510dd9230bf0b9bfc9b20102241e577ea7a99334ab4c3ca19f19770e9b8ea | |
| options: --ipc=host | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js and pnpm | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| install-args: "--frozen-lockfile" | |
| - name: Run webview visual tests | |
| run: pnpm --filter @roo-code/vscode-webview test:visual | |
| - name: Upload visual test coverage to Codecov | |
| if: always() | |
| uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 | |
| with: | |
| files: webview-ui/coverage-ct/lcov.info | |
| disable_search: true | |
| flags: webview-ui-ct | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Upload visual test artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 | |
| with: | |
| name: webview-visual-regression | |
| path: | | |
| webview-ui/playwright-report | |
| webview-ui/test-results | |
| if-no-files-found: ignore | |
| theme-fixtures: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js and pnpm | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| install-args: "--frozen-lockfile" | |
| - name: Install xvfb | |
| run: sudo apt-get install -y xvfb | |
| - name: Get pinned VS Code version | |
| id: vscode-version | |
| run: | | |
| VERSION=$(node -p 'require("./apps/vscode-e2e/package.json").devDependencies["@types/vscode"]') | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| - name: Cache pinned VS Code | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: apps/vscode-e2e/.vscode-test/ | |
| key: vscode-theme-fixtures-${{ runner.os }}-${{ steps.vscode-version.outputs.version }}-v1 | |
| - name: Test theme fixture serialization | |
| run: pnpm --filter @roo-code/vscode-e2e themes:test | |
| - name: Check generated VS Code theme fixtures | |
| run: xvfb-run -a pnpm --filter @roo-code/vscode-e2e themes:check | |
| extension-host-visual: | |
| runs-on: ubuntu-latest | |
| # Includes dependency setup, builds, repeated visuals, and production watchdog waits. | |
| timeout-minutes: 35 | |
| container: | |
| image: mcr.microsoft.com/playwright:v1.64.1-noble@sha256:47b510dd9230bf0b9bfc9b20102241e577ea7a99334ab4c3ca19f19770e9b8ea | |
| options: --ipc=host | |
| env: | |
| LANG: en_US.UTF-8 | |
| LC_ALL: en_US.UTF-8 | |
| TZ: UTC | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js and pnpm | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| install-args: "--frozen-lockfile" | |
| - name: Get pinned VS Code version | |
| id: vscode-version | |
| run: | | |
| VERSION=$(node -p 'require("./apps/vscode-e2e/package.json").devDependencies["@types/vscode"]') | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| - name: Cache pinned VS Code | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: apps/vscode-e2e/.vscode-test/ | |
| key: vscode-electron-visual-${{ runner.os }}-${{ steps.vscode-version.outputs.version }}-v1 | |
| - name: Run Extension Host visual tests | |
| run: xvfb-run -a pnpm --filter @roo-code/vscode-e2e test:visual:electron | |
| - name: Upload Extension Host visual artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 | |
| with: | |
| name: extension-host-visual-regression | |
| path: | | |
| apps/vscode-e2e/playwright-report-electron | |
| apps/vscode-e2e/test-results-electron | |
| if-no-files-found: ignore |