update dependencies (#1353) #1616
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- main | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
ci: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04, macos-14, windows-2022] | |
timeout-minutes: 300 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.nvmrc' | |
- name: Compute node modules cache key | |
id: nodeModulesCacheKey | |
run: echo "value=$(node scripts/computeNodeModulesCacheKey.js)" >> $GITHUB_OUTPUT | |
shell: bash | |
- uses: actions/cache@v4 | |
id: npm-cache | |
with: | |
path: | | |
**/node_modules | |
**/.vscode-test | |
**/.vscode-user-data-dir | |
**/.vscode-ffmpeg | |
**/.vscode-source-maps | |
**/.vscode-resolve-source-map-cache | |
key: ${{ runner.os }}-cacheNodeModules-${{ steps.nodeModulesCacheKey.outputs.value }} | |
- name: npm ci | |
run: npm ci --ignore-scripts && npm run postinstall | |
if: steps.npm-cache.outputs.cache-hit != 'true' | |
- run: npm run type-check | |
- run: npm run build | |
- run: npm test | |
- name: Run headless test (with videos) | |
if: matrix.os != 'macos-14' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --record-video | |
- name: Run headless test | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: npm run e2e | |
- name: Run headless test (flakyness check) | |
if: matrix.os != 'macos-14' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: npm run e2e:check-flakyness | |
- name: Run headless test (second flakyness check) | |
if: matrix.os != 'macos-14' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: npm run e2e:check-flakyness | |
- name: Run headless test (check leaks) | |
if: matrix.os != 'macos-14' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after | |
- name: Run headless test (check leaks, event listeners) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure event-listeners | |
- name: Run headless test (check leaks, dom counters) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure dom-counters | |
- name: Run headless test (check leaks, detached dom node count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure detached-dom-node-count | |
- name: Run headless test (check leaks, promise count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure promise-count | |
- name: Run headless test (check leaks, regex count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure regex-count | |
- name: Run headless test (check leaks, function count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure function-count | |
- name: Run headless test (check leaks, mutation observer count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure mutation-observer-count | |
- name: Run headless test (check leaks, resize observer count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure resize-observer-count | |
- name: Run headless test (check leaks, weak map count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure weak-map-count | |
# - name: Run headless test (check leaks, number count) | |
# if: matrix.os == 'ubuntu-24.04' | |
# uses: coactions/setup-xvfb@v1 | |
# with: | |
# run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure number-count | |
- name: Run headless test (check leaks, weak set count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure weak-set-count | |
- name: Run headless test (check leaks, map size) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure map-size | |
- name: Run headless test (check leaks, set size) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure set-size | |
- name: Run headless test (check leaks, canvas count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure canvas-count | |
- name: Run headless test (check leaks, iframe count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure iframe-count | |
- name: Run headless test (check leaks, typed array count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure typed-array-count | |
- name: Run headless test (check leaks, message port count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure message-port-count | |
- name: Run headless test (check leaks, symbol count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure symbol-count | |
# - name: Run headless test (check leaks, string count) | |
# if: matrix.os == 'ubuntu-24.04' | |
# uses: coactions/setup-xvfb@v1 | |
# with: | |
# run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure string-count | |
- name: Run headless test (check leaks, object count) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure object-count | |
- name: Run headless test (check leaks, disposable counts) | |
if: matrix.os == 'ubuntu-24.04' | |
uses: coactions/setup-xvfb@v1 | |
with: | |
run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure disposable-count | |
# - name: Run headless test (check leaks, instance counts) | |
# if: matrix.os == 'ubuntu-24.04' | |
# uses: coactions/setup-xvfb@v1 | |
# with: | |
# run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure instance-counts-with-source-map | |
- name: Generate charts | |
run: node packages/charts/src/main.js | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: vscode-memory-leak-finder-results-${{ runner.os }} | |
path: .vscode-memory-leak-finder-results | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: vscode-videos-${{ runner.os }} | |
path: .vscode-videos | |
- name: Upload artifact | |
if: matrix.os == 'ubuntu-24.04' | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./.vscode-charts | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-24.04 | |
needs: ci | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |