@@ -275,13 +275,14 @@ jobs:
275
275
# When installing pre-release versions, we're only focused on jupyter & related packages.
276
276
# Not pre-release versions of pandas, numpy or other such packages that are not core to Jupyter.
277
277
packageVersion : ['']
278
- tags :
279
- [
278
+ tags : [
280
279
' ^[^@]+$|@mandatory|@kernelCore|@python|@jupyter' ,
281
280
' @widgets' ,
282
281
' @iw' ,
283
282
' @webview|@export|@lsp|@variableViewer' ,
284
- ' @debugger'
283
+ ' @debugger' ,
284
+ # '@notebookPerformance', # Disabled for now, separate PR this will be enabled via cron (want to make PR smaller)
285
+ ' @executionPerformance'
285
286
]
286
287
# We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
287
288
# macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
@@ -506,7 +507,7 @@ jobs:
506
507
# debugpy is not shipped, only installed for local tests.
507
508
# In production, we get debugpy from python extension.
508
509
- name : Install Python Libs
509
- if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.ipywidgetsVersion != '8'
510
+ if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.ipywidgetsVersion != '8' && matrix.tags != '@notebookPerformance'
510
511
run : |
511
512
python --version
512
513
python -c "import sys;print(sys.executable)"
@@ -521,7 +522,7 @@ jobs:
521
522
python -m pip install jupyterlab notebook
522
523
523
524
- name : Install Python Libs (IPyWidget 8)
524
- if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.ipywidgetsVersion == '8'
525
+ if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.ipywidgetsVersion == '8' && matrix.tags != '@notebookPerformance'
525
526
run : |
526
527
python --version
527
528
python -c "import sys;print(sys.executable)"
@@ -542,7 +543,7 @@ jobs:
542
543
543
544
- name : Install matplotlib widgets into user and system paths
544
545
if :
545
- matrix.os == 'ubuntu-latest' && matrix.python != 'conda' && matrix.python != 'noPython' && matrix.packageVersion != 'prerelease' && matrix.tags != '^[^@]+$|@mandatory'
546
+ matrix.os == 'ubuntu-latest' && matrix.python != 'conda' && matrix.python != 'noPython' && matrix.packageVersion != 'prerelease' && matrix.tags != '^[^@]+$|@mandatory' && matrix.tags != '@notebookPerformance'
546
547
# This test will ensure widgets work when installed in 3 places
547
548
# 1. In python environments site-packages folder (we have other 3rd party widgets in the python env)
548
549
# 2. In user's home folder (ipympl will be installed in there)
@@ -585,23 +586,30 @@ jobs:
585
586
VSC_JUPYTER_CI_SKIP_WEB_BUNDLE : 1
586
587
VSC_JUPYTER_CI_FAST_COMPILATION : 1
587
588
589
+ - name : Compile Performance Test Extension
590
+ if : matrix.tags == '@notebookPerformance'
591
+ run : npm run compile
592
+ working-directory : src/test/vscode-notebook-perf
593
+
588
594
# Used by tests for non-python kernels.
589
595
# Test are enabled via env variable `VSC_JUPYTER_CI_RUN_NON_PYTHON_NB_TEST`
590
596
- name : Install Deno
591
597
uses : denoland/setup-deno@v1
598
+ if : matrix.tags != '@notebookPerformance'
592
599
with :
593
600
deno-version : ${{ env.DENO_VERSION}}
594
601
595
602
- name : Install Deno Kernel
603
+ if : matrix.tags != '@notebookPerformance'
596
604
run : npx tsx ./build/installDenoKernel.ts
597
605
598
606
- name : Create Virtual Env for Tests
599
607
uses : ./.github/actions/create-venv-for-tests
600
- if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.os != 'windows-latest' && matrix.jupyterConnection != 'remote' && matrix.tags != '^[^@]+$|@mandatory' && matrix.ipywidgetsVersion != '8' && matrix.jupyterConnection != 'web' && matrix.jupyterConnection != 'remote' && matrix.tags != '@debugger' && matrix.tags != '@webview|@export|@lsp|@variableViewer'
608
+ if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.os != 'windows-latest' && matrix.jupyterConnection != 'remote' && matrix.tags != '^[^@]+$|@mandatory' && matrix.ipywidgetsVersion != '8' && matrix.jupyterConnection != 'web' && matrix.jupyterConnection != 'remote' && matrix.tags != '@debugger' && matrix.tags != '@webview|@export|@lsp|@variableViewer' && matrix.tags != '@notebookPerformance'
601
609
602
610
- name : Create Virtual Env for Tests (ipywidgets 8)
603
611
uses : ./.github/actions/create-venv-for-tests
604
- if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.os != 'windows-latest' && matrix.jupyterConnection != 'remote' && matrix.tags != '^[^@]+$|@mandatory' && matrix.ipywidgetsVersion == '8' && matrix.jupyterConnection != 'web' && matrix.jupyterConnection != 'remote' && matrix.tags != '@debugger' && matrix.tags != '@webview|@export|@lsp|@variableViewer'
612
+ if : matrix.python != 'conda' && matrix.python != 'noPython' && matrix.os != 'windows-latest' && matrix.jupyterConnection != 'remote' && matrix.tags != '^[^@]+$|@mandatory' && matrix.ipywidgetsVersion == '8' && matrix.jupyterConnection != 'web' && matrix.jupyterConnection != 'remote' && matrix.tags != '@debugger' && matrix.tags != '@webview|@export|@lsp|@variableViewer' && matrix.tags != '@notebookPerformance'
605
613
with :
606
614
IPyWidgetVersion : ' 8'
607
615
@@ -646,7 +654,45 @@ jobs:
646
654
VSC_JUPYTER_CI_TEST_VSC_CHANNEL : ' insiders'
647
655
VSC_JUPYTER_CI_TEST_GREP : ${{ matrix.tags }}
648
656
id : test_notebook_vscode_ubuntu
649
- if : matrix.python != 'noPython' && matrix.os == 'ubuntu-latest' && matrix.jupyterConnection != 'web'
657
+ if : matrix.python != 'noPython' && matrix.os == 'ubuntu-latest' && matrix.jupyterConnection != 'web' && matrix.tags != '@notebookPerformance'
658
+
659
+ - name : Run Notebook Perf Test Without Jupyter
660
+
661
+ with :
662
+ run : ${{ env.xvfbCommand }} npm run testPerfInVSCode
663
+ env :
664
+ VSC_JUPYTER_FORCE_LOGGING : 1
665
+ VSC_PYTHON_FORCE_LOGGING : 1
666
+ VSC_JUPYTER_CI_RUN_NON_PYTHON_NB_TEST : 1
667
+ VSC_JUPYTER_PERF_TEST : ${{ matrix.matrix == '@notebookPerformance' }}
668
+ VSC_JUPYTER_NOTEBOOK_PERF_TEST : ${{ matrix.matrix == '@notebookPerformance' }}
669
+ VSC_JUPYTER_CI_TEST_DO_NOT_INSTALL_PYTHON_EXT : ${{ matrix.matrix == '@notebookPerformance' }}
670
+ VSC_JUPYTER_REMOTE_NATIVE_TEST : ${{ matrix.jupyterConnection == 'remote' }}
671
+ VSC_JUPYTER_NON_RAW_NATIVE_TEST : ${{ matrix.jupyterConnection == 'local' }}
672
+ VSC_JUPYTER_CI_RUN_JAVA_NB_TEST : ${{ matrix.python == 'conda' }}
673
+ VSC_JUPYTER_CI_IS_CONDA : ${{ matrix.python == 'conda' }}
674
+ VSC_JUPYTER_CI_TEST_VSC_CHANNEL : ' insiders'
675
+ VSC_JUPYTER_CI_TEST_GREP : ${{ matrix.tags }}
676
+ id : test_notebook_perf_vscode_ubuntu
677
+ if : matrix.tags == '@notebookPerformance'
678
+
679
+ - name : Run Execution Perf Test With Jupyter
680
+
681
+ with :
682
+ run : ${{ env.xvfbCommand }} npm run testExecPerfInVSCode
683
+ env :
684
+ VSC_JUPYTER_FORCE_LOGGING : 1
685
+ VSC_PYTHON_FORCE_LOGGING : 1
686
+ VSC_JUPYTER_CI_RUN_NON_PYTHON_NB_TEST : 1
687
+ VSC_JUPYTER_PERF_TEST : ${{ matrix.matrix == '@executionPerformance' }}
688
+ VSC_JUPYTER_REMOTE_NATIVE_TEST : ${{ matrix.jupyterConnection == 'remote' }}
689
+ VSC_JUPYTER_NON_RAW_NATIVE_TEST : ${{ matrix.jupyterConnection == 'local' }}
690
+ VSC_JUPYTER_CI_RUN_JAVA_NB_TEST : ${{ matrix.python == 'conda' }}
691
+ VSC_JUPYTER_CI_IS_CONDA : ${{ matrix.python == 'conda' }}
692
+ VSC_JUPYTER_CI_TEST_VSC_CHANNEL : ' insiders'
693
+ VSC_JUPYTER_CI_TEST_GREP : ${{ matrix.tags }}
694
+ id : test_exec_perf_vscode_ubuntu
695
+ if : matrix.tags == '@executionPerformance'
650
696
651
697
- name : Build web bundle for testing
652
698
run : npm run compile-web-test
0 commit comments