1111 - 2.x
1212 workflow_dispatch :
1313
14+ # TODO: might need to tweak `group`
15+ concurrency :
16+ group : ${{ github.head_ref }}
17+ cancel-in-progress : true
18+
1419defaults :
1520 run :
1621 shell : bash -l {0}
3136jobs :
3237 lint :
3338 name : jstest/lint
34- runs-on : ${{ matrix.os }}
39+ runs-on : ${{ matrix.os }}-latest
3540 strategy :
3641 matrix :
37- os : [ubuntu-latest ]
42+ os : [ubuntu]
3843 nodejs : ['>=14,<15.0.0a0']
3944 lab : ['>=3.0.0,<4.0.0a0']
45+ r : ['>=4']
4046 steps :
4147 - uses : actions/checkout@v2
4248
7783 with :
7884 path : ' **/node_modules'
7985 key : |
80- ${{ env.CACHE_EPOCH }}-${{ runner.os }}-node-lint -${{ hashFiles('yarn.lock', 'requirements/github-actions.yml') }}
86+ ${{ env.CACHE_EPOCH }}-${{ runner.os }}-node-build -${{ hashFiles('yarn.lock', 'requirements/github-actions.yml') }}
8187
8288 - name : Cache yarn packages
8389 id : cache-yarn-packages
@@ -104,6 +110,9 @@ jobs:
104110 - name : Lint backend
105111 run : python scripts/lint.py
106112
113+ - name : ' Revert templated file (TODO: remove)'
114+ run : git checkout requirements/github-actions.yml
115+
107116 - name : Lint frontend
108117 run : jlpm lint:check
109118
@@ -112,12 +121,13 @@ jobs:
112121
113122 build :
114123 name : build
115- runs-on : ${{ matrix.os }}
124+ runs-on : ${{ matrix.os }}-latest
116125 strategy :
117126 matrix :
118- os : [ubuntu-latest ]
127+ os : [ubuntu]
119128 nodejs : ['>=14,<15.0.0a0']
120129 lab : ['>=3.0.0,<4.0.0a0']
130+ r : ['>=4']
121131 steps :
122132 - uses : actions/checkout@v2
123133
@@ -203,35 +213,27 @@ jobs:
203213 path : ./dist
204214
205215 acceptance :
206- runs-on : ${{ matrix.os }}
207- name : atest ${{ matrix.os }} py${{ matrix.python }}
216+ runs-on : ${{ matrix.os }}-latest
217+ name : atest ${{ matrix.os }} py${{ matrix.python }} r${{ matrix.r }}
208218 needs : [build]
209219 strategy :
210220 # TODO: maybe turn back on
211221 fail-fast : false
212222 matrix :
213- os : ['ubuntu-latest', 'macos-10.15', 'windows-latest']
214- python : [3.6, 3.7, 3.8]
215- lab : ['>=3.0.0,<4.0.0a0']
223+ os : ['ubuntu', 'macos', 'windows']
224+ python : ['3.7', '3.10']
216225 include :
217- # if using 3.6 , use an old node
218- - python : 3.6
226+ # if using 3.7 , use newer node, etc...
227+ - python : ' 3.7 '
219228 # Node 12 end-of-life: April 2022
220229 nodejs : ' >=12,<13.0.0.a0'
221- # if using 3.7, use newer node, etc...
222- - python : 3.7
223- # Node 14 end-of-life: April 2023
224- nodejs : ' >=14,<15.0.0.a0'
225- - python : 3.8
230+ r : ' <4'
231+ lab : ' >=3.0.0,<3.1'
232+ - python : ' 3.10'
226233 # Node 16 end-of-life: April 2024
227234 nodejs : ' >=16,<17.0.0.a0'
228- # TODO: remove when mambaforge just works on setup-miniconda
229- - os : ' ubuntu-latest'
230- mambaforge : Linux-x86_64.sh
231- - os : ' macos-10.15'
232- mambaforge : MacOSX-x86_64.sh
233- - os : ' windows-latest'
234- mambaforge : Windows-x86_64.exe
235+ r : ' >=4'
236+ lab : ' >=3.2.0,<4'
235237
236238 steps :
237239 - uses : actions/checkout@v2
@@ -355,28 +357,38 @@ jobs:
355357
356358 smoke :
357359 name : smoke ${{ matrix.os }} py${{ matrix.python }}
358- runs-on : ${{ matrix.os }}
360+ runs-on : ${{ matrix.os }}-latest
359361 needs : [build, lint]
360362 strategy :
361363 fail-fast : false
364+ max-parallel : 3
362365 matrix :
363- os : ['ubuntu-latest ', 'macos-10.15 ', 'windows-latest ']
364- python : ['3.6 ', '3.9', 'pypy3 ']
366+ os : ['ubuntu', 'macos', 'windows']
367+ python : ['3.7 ', '3.8', '3. 9', '3.10', 'pypy-3.7 ']
365368 exclude :
366369 - os : windows
367- python : pypy3
370+ python : pypy-3.7
368371 include :
369- - python : ' 3.6'
370- dist : ' jupyter*lsp*.tar.gz'
371- - python : ' pypy3'
372+ - python : ' 3.7'
372373 dist : ' jupyter*lsp*.tar.gz'
374+ lab : ' >=3,<3.1'
375+ - python : ' 3.8'
376+ dist : ' jupyter*lsp*.whl'
377+ lab : ' >=3,<3.1'
373378 - python : ' 3.9'
379+ dist : ' jupyter*lsp*.tar.gz'
380+ lab : ' >=3.2,<3.3'
381+ - python : ' 3.10'
374382 dist : ' jupyter*lsp*.whl'
375- - os : ' windows-latest'
383+ lab : ' >=3.2,<4'
384+ - python : ' pypy-3.7'
385+ dist : ' jupyter*lsp*.tar.gz'
386+ lab : ' >=3.2,<3.3'
387+ - os : ' windows'
376388 py_cmd : python
377- - os : ' macos-10.15 '
389+ - os : ' macos'
378390 py_cmd : python3
379- - os : ' ubuntu-latest '
391+ - os : ' ubuntu'
380392 py_cmd : python
381393 steps :
382394 - name : Install Python
@@ -391,7 +403,7 @@ jobs:
391403 - name : Install the prerequisites
392404 run : ${{ matrix.py_cmd }} -m pip install pip wheel
393405 - name : Install the package
394- run : cd dist && ${{ matrix.py_cmd }} -m pip install -vv ${{ matrix.dist }}
406+ run : cd dist && ${{ matrix.py_cmd }} -m pip install -vv ${{ matrix.dist }} 'jupyterlab${{ matrix.lab }}'
395407 - name : Validate environment
396408 run : |
397409 set -eux
@@ -406,16 +418,20 @@ jobs:
406418 jupyter server extension list 2>&1 | grep -ie "jupyter_lsp.*enabled" -
407419
408420 source :
409- name : smoke source install ${{ matrix.os }}
421+ name : smoke source install ${{ matrix.os }} py${{ matrix.python }} lab${{ matrix.lab }}
410422 runs-on : ${{ matrix.os }}-latest
411423 needs : [build]
412424 strategy :
413425 fail-fast : false
414426 matrix :
415427 os : [ubuntu]
416- python : ['3.6 ']
428+ python : ['3.7', '3.10 ']
417429 nodejs : ['14']
418- lab : ['>=3.0.0,<4.0.0a0']
430+ include :
431+ - python : ' 3.7'
432+ lab : ' >=3,<3.1'
433+ - python : ' 3.10'
434+ lab : ' >=3.2,<4'
419435 steps :
420436 - name : Install Python
421437 uses : actions/setup-python@v2
@@ -425,13 +441,13 @@ jobs:
425441 - name : Setup Node
426442 uses : actions/setup-node@v2
427443 with :
428- node-version : ${{matrix.nodejs}}
444+ node-version : ${{ matrix.nodejs }}
429445 - uses : actions/download-artifact@v2
430446 with :
431447 name : jupyterlab-lsp dist ${{ github.run_number }}
432448 path : ./dist
433449 - name : Install the prerequisites
434- run : python -m pip install pip wheel
450+ run : python -m pip install --upgrade pip wheel setuptools
435451 - name : Install JupyterLab
436452 shell : bash -l {0}
437453 run : python -m pip install 'jupyterlab${{ matrix.lab }}'
0 commit comments