diff --git a/.github/workflows/screenshot-test.yml b/.github/workflows/screenshot-test.yml index e5a91228a14..5c1c3cb9310 100644 --- a/.github/workflows/screenshot-test.yml +++ b/.github/workflows/screenshot-test.yml @@ -36,10 +36,18 @@ jobs: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install build dependencies + run: npm ci + working-directory: build + - name: Install build/vite dependencies run: rm -f package-lock.json && npm install working-directory: build/vite + - name: Build vite + run: npm run build + working-directory: build/vite + - name: Install Playwright Chromium run: npx playwright install chromium @@ -51,10 +59,23 @@ jobs: run: | npx component-explorer screenshot:compare \ --project ./test/componentFixtures \ - --report ./test/componentFixtures/.screenshots/report.json \ - --report-markdown ./test/componentFixtures/.screenshots/report.md + --report ./test/componentFixtures/.screenshots/report continue-on-error: true + - name: Prepare explorer artifact + run: | + mkdir -p /tmp/explorer-artifact/screenshot-report + cp -r build/vite/dist/* /tmp/explorer-artifact/ + if [ -d test/componentFixtures/.screenshots/report ]; then + cp -r test/componentFixtures/.screenshots/report/* /tmp/explorer-artifact/screenshot-report/ + fi + + - name: Upload explorer artifact + uses: actions/upload-artifact@v4 + with: + name: component-explorer + path: /tmp/explorer-artifact/ + - name: Upload screenshot report if: steps.compare.outcome == 'failure' uses: actions/upload-artifact@v4 @@ -62,14 +83,13 @@ jobs: name: screenshot-diff path: | test/componentFixtures/.screenshots/current/ - test/componentFixtures/.screenshots/report.json - test/componentFixtures/.screenshots/report.md + test/componentFixtures/.screenshots/report/ - name: Set check title env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - REPORT="test/componentFixtures/.screenshots/report.json" + REPORT="test/componentFixtures/.screenshots/report/report.json" if [ -f "$REPORT" ]; then CHANGED=$(node -e "const r = require('./$REPORT'); console.log(r.summary.added + r.summary.removed + r.summary.changed)") TITLE="${CHANGED} screenshots changed" @@ -90,8 +110,8 @@ jobs: - name: Post summary run: | - if [ -f test/componentFixtures/.screenshots/report.md ]; then - cat test/componentFixtures/.screenshots/report.md >> $GITHUB_STEP_SUMMARY + if [ -f test/componentFixtures/.screenshots/report/report.md ]; then + cat test/componentFixtures/.screenshots/report/report.md >> $GITHUB_STEP_SUMMARY else echo "## Screenshots ✅" >> $GITHUB_STEP_SUMMARY echo "No visual changes detected." >> $GITHUB_STEP_SUMMARY diff --git a/.gitignore b/.gitignore index 7359fbeaa22..9a9fdcadff9 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ vscode-telemetry-docs/ test-output.json test/componentFixtures/.screenshots/* !test/componentFixtures/.screenshots/baseline/ +dist diff --git a/build/vite/package-lock.json b/build/vite/package-lock.json index f19b6fb6fe7..60c863d483b 100644 --- a/build/vite/package-lock.json +++ b/build/vite/package-lock.json @@ -8,7 +8,7 @@ "name": "@vscode/sample-source", "version": "0.0.0", "devDependencies": { - "@vscode/component-explorer": "^0.1.1-10", + "@vscode/component-explorer": "^0.1.1-11", "@vscode/component-explorer-vite-plugin": "^0.1.1-10", "@vscode/rollup-plugin-esm-url": "^1.0.1-1", "rollup": "*", @@ -683,9 +683,9 @@ "license": "MIT" }, "node_modules/@vscode/component-explorer": { - "version": "0.1.1-10", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-10.tgz", - "integrity": "sha512-Nokjk2DB1hgKeUL1FW5dHfXySgj17BgxcsiyzcG6etdFIbMpzv85nMQxrW/88aklgmJPrRVefMRHFYSds/F3/g==", + "version": "0.1.1-11", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-11.tgz", + "integrity": "sha512-CP2KlhPApPh8zhFH2A2lD5/Zv/+UR02Id1hGfKgdlPQFyNLdfgTcXfVl55BHiwADGR+YRyNHocsglFuplQX8QQ==", "dev": true, "dependencies": { "react": "^18.2.0", @@ -693,9 +693,9 @@ } }, "node_modules/@vscode/component-explorer-vite-plugin": { - "version": "0.1.1-10", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer-vite-plugin/-/component-explorer-vite-plugin-0.1.1-10.tgz", - "integrity": "sha512-1F2Ier7lpFPvYzWxyNCBy3qYzSwRyTw6k3pm+l6DBMMNT+OTnCZ3+awa7wtijZXMc4O1WooxswjrjBu++Oqftg==", + "version": "0.1.1-11", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer-vite-plugin/-/component-explorer-vite-plugin-0.1.1-11.tgz", + "integrity": "sha512-+rVlilTUK5oMzkU8tagfmLfzZpSbXJANLKaLPBgN6pyBuDzkuRZmH6JzQbUCqeUGbVhHwG+U1thh5ws6ncFeEQ==", "dev": true, "dependencies": { "tinyglobby": "^0.2.0" diff --git a/build/vite/package.json b/build/vite/package.json index b4268fceca1..5998c829b21 100644 --- a/build/vite/package.json +++ b/build/vite/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@vscode/component-explorer": "^0.1.1-10", + "@vscode/component-explorer": "^0.1.1-11", "@vscode/component-explorer-vite-plugin": "^0.1.1-10", "@vscode/rollup-plugin-esm-url": "^1.0.1-1", "rollup": "*", diff --git a/build/vite/vite.config.ts b/build/vite/vite.config.ts index d6d8931fa31..cdae205f030 100644 --- a/build/vite/vite.config.ts +++ b/build/vite/vite.config.ts @@ -164,6 +164,7 @@ logger.warn = (msg, options) => { }; export default defineConfig({ + base: './', plugins: [ rollupEsmUrlPlugin({}), injectBuiltinExtensionsPlugin(), @@ -171,6 +172,7 @@ export default defineConfig({ componentExplorer({ logLevel: 'verbose', include: join(__dirname, '../../src/**/*.fixture.ts'), + build: 'all', }), ], customLogger: logger, @@ -188,6 +190,7 @@ export default defineConfig({ }, root: '../..', // To support /out/... paths build: { + outDir: join(__dirname, 'dist'), rollupOptions: { input: { //index: path.resolve(__dirname, 'index.html'), diff --git a/package-lock.json b/package-lock.json index 2b82a31c008..260c4aef67e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,8 +84,8 @@ "@types/yazl": "^2.4.2", "@typescript-eslint/utils": "^8.45.0", "@typescript/native-preview": "^7.0.0-dev.20260130", - "@vscode/component-explorer": "^0.1.1-10", - "@vscode/component-explorer-cli": "^0.1.1-6", + "@vscode/component-explorer": "^0.1.1-11", + "@vscode/component-explorer-cli": "^0.1.1-7", "@vscode/gulp-electron": "https://github.com/microsoft/vscode-gulp-electron.git#405e3df0e4e9c37fcf549cbe6f5cef8d5ba5ddff", "@vscode/l10n-dev": "0.0.35", "@vscode/telemetry-extractor": "^1.10.2", @@ -3065,9 +3065,9 @@ "license": "CC-BY-4.0" }, "node_modules/@vscode/component-explorer": { - "version": "0.1.1-10", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-10.tgz", - "integrity": "sha512-Nokjk2DB1hgKeUL1FW5dHfXySgj17BgxcsiyzcG6etdFIbMpzv85nMQxrW/88aklgmJPrRVefMRHFYSds/F3/g==", + "version": "0.1.1-11", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-11.tgz", + "integrity": "sha512-CP2KlhPApPh8zhFH2A2lD5/Zv/+UR02Id1hGfKgdlPQFyNLdfgTcXfVl55BHiwADGR+YRyNHocsglFuplQX8QQ==", "dev": true, "dependencies": { "react": "^18.2.0", @@ -3075,9 +3075,9 @@ } }, "node_modules/@vscode/component-explorer-cli": { - "version": "0.1.1-6", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer-cli/-/component-explorer-cli-0.1.1-6.tgz", - "integrity": "sha512-OnypYKeBH8ZZh6++2NvVo9lPXFvHpIik6Y/KAa/UVMp4hI58KlQ0zEOWszvwR1i6mESn+BRWERFbQbNlKLec5g==", + "version": "0.1.1-7", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer-cli/-/component-explorer-cli-0.1.1-7.tgz", + "integrity": "sha512-Q+R736ZJtn96k0tClXMFQaa3KUWoqC2LOR7iTaILiKjtgPa3St1d+ZztbT8OiLhk/nhTlymBavVue83068Qm/g==", "dev": true, "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", diff --git a/package.json b/package.json index 14eb04131bd..e5e265ac8c1 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "perf": "node scripts/code-perf.js", "update-build-ts-version": "npm install -D typescript@next && npm install -D @typescript/native-preview && (cd build && npm run typecheck)", "install-local-component-explorer": "npm install ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-0.1.0.tgz ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-cli-0.1.0.tgz --no-save && cd build/vite && npm install ../../../vscode-packages/js-component-explorer/dist/vscode-component-explorer-vite-plugin-0.1.0.tgz --no-save", - "install-latest-component-explorer": "npm install @vscode/component-explorer@next @vscode/component-explorer-cli@next && cd build/vite && npm install @vscode/component-explorer-vite-plugin@next" + "install-latest-component-explorer": "npm install @vscode/component-explorer@next @vscode/component-explorer-cli@next && cd build/vite && npm install @vscode/component-explorer-vite-plugin@next && npm install @vscode/component-explorer" }, "dependencies": { "@anthropic-ai/sandbox-runtime": "0.0.23", @@ -152,8 +152,8 @@ "@types/yazl": "^2.4.2", "@typescript-eslint/utils": "^8.45.0", "@typescript/native-preview": "^7.0.0-dev.20260130", - "@vscode/component-explorer": "^0.1.1-10", - "@vscode/component-explorer-cli": "^0.1.1-6", + "@vscode/component-explorer": "^0.1.1-11", + "@vscode/component-explorer-cli": "^0.1.1-7", "@vscode/gulp-electron": "https://github.com/microsoft/vscode-gulp-electron.git#405e3df0e4e9c37fcf549cbe6f5cef8d5ba5ddff", "@vscode/l10n-dev": "0.0.35", "@vscode/telemetry-extractor": "^1.10.2",