Skip to content

feature: add typed array count chart (#1349) #1614

feature: add typed array count chart (#1349)

feature: add typed array count chart (#1349) #1614

Workflow file for this run

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