@@ -101,7 +101,7 @@ jobs:
101
101
OPENAI_API_KEY : ${{ secrets.OPENAI_API_KEY }}
102
102
103
103
install-gui :
104
- needs : [install-root, install-core]
104
+ needs : [ install-root, install-core ]
105
105
runs-on : ubuntu-latest
106
106
steps :
107
107
- uses : actions/checkout@v4
@@ -164,7 +164,7 @@ jobs:
164
164
npx tsc --noEmit
165
165
166
166
binary-checks :
167
- needs : [install-root, install-core]
167
+ needs : [ install-root, install-core ]
168
168
runs-on : ubuntu-latest
169
169
steps :
170
170
- uses : actions/checkout@v4
@@ -201,7 +201,7 @@ jobs:
201
201
npx tsc --noEmit
202
202
203
203
install-vscode :
204
- needs : [install-root, install-core]
204
+ needs : [ install-root, install-core ]
205
205
runs-on : ubuntu-latest
206
206
steps :
207
207
- uses : actions/checkout@v4
@@ -294,7 +294,7 @@ jobs:
294
294
295
295
vscode-get-test-file-matrix :
296
296
runs-on : ubuntu-latest
297
- needs : [install-root, install-vscode]
297
+ needs : [ install-root, install-vscode ]
298
298
outputs :
299
299
test_file_matrix : ${{ steps.vscode-get-test-file-matrix.outputs.test_file_matrix }}
300
300
steps :
@@ -323,7 +323,7 @@ jobs:
323
323
324
324
vscode-package-extension :
325
325
runs-on : ubuntu-latest
326
- needs : [install-vscode, install-core]
326
+ needs : [ install-vscode, install-core ]
327
327
steps :
328
328
- uses : actions/checkout@v4
329
329
@@ -356,7 +356,7 @@ jobs:
356
356
357
357
vscode-download-e2e-dependencies :
358
358
runs-on : ubuntu-latest
359
- needs : [install-vscode, install-core]
359
+ needs : [ install-vscode, install-core ]
360
360
steps :
361
361
- uses : actions/checkout@v4
362
362
@@ -404,7 +404,7 @@ jobs:
404
404
fail-fast : false
405
405
matrix :
406
406
test_file : ${{ fromJson(needs.vscode-get-test-file-matrix.outputs.test_file_matrix) }}
407
- command : ["e2e:ci:run", "e2e:ci:run-yaml"]
407
+ command : [ "e2e:ci:run", "e2e:ci:run-yaml" ]
408
408
steps :
409
409
- uses : actions/checkout@v4
410
410
@@ -467,7 +467,7 @@ jobs:
467
467
path : extensions/vscode/e2e/storage/screenshots
468
468
469
469
gui-tests :
470
- needs : [install-gui, install-core]
470
+ needs : [ install-gui, install-core ]
471
471
runs-on : ubuntu-latest
472
472
steps :
473
473
- uses : actions/checkout@v4
@@ -498,11 +498,48 @@ jobs:
498
498
cd gui
499
499
npm test
500
500
501
+
501
502
jetbrains-tests :
502
- needs : [install-root, core-checks]
503
- runs-on : ubuntu-latest
503
+ needs : [ install-root, core-checks ]
504
+ strategy :
505
+ fail-fast : false
506
+ matrix :
507
+ os : [ ubuntu-latest, windows-latest ]
508
+ include :
509
+ - os : ubuntu-latest
510
+ runIde : |
511
+ export DISPLAY=:99.0
512
+ Xvfb -ac :99 -screen 0 1920x1080x24 &
513
+ sleep 10
514
+ mkdir -p extensions/intellij/build/reports
515
+ ./gradlew runIdeForUiTests &
516
+ runTests : |
517
+ export DISPLAY=:99.0
518
+ ./gradlew test
519
+ url : http://127.0.0.1:8082
520
+ reportName : jb-failure-report-linux
521
+ shell : bash
522
+ moveVideo : mv extensions/intellij/video extensions/intellij/build/reports
523
+ copyLogs : mv extensions/intellij/build/idea-sandbox/system/log/ extensions/intellij/build/reports
524
+ reportsPath : extensions/intellij/build/reports
525
+
526
+ - os : windows-latest
527
+ runIde : |
528
+ set DISPLAY=:99.0
529
+ start /B gradlew.bat runIdeForUiTests
530
+ mkdir extensions\intellij\build\reports
531
+ runTests : |
532
+ ./gradlew test
533
+ url : http://localhost:8082
534
+ reportName : jb-failure-report-windows
535
+ shell : pwsh
536
+ moveVideo : Move-Item extensions\intellij\video extensions\intellij\build\reports
537
+ copyLogs : Move-Item extensions\intellij\build\idea-sandbox\system\log\ extensions\intellij\build\reports
538
+ reportsPath : extensions\intellij\build\reports
539
+ runs-on : ${{ matrix.os }}
504
540
steps :
505
541
- uses : actions/checkout@v4
542
+
506
543
- uses : actions/cache@v4
507
544
with :
508
545
path : core/node_modules
@@ -533,7 +570,6 @@ jobs:
533
570
path : gui/node_modules
534
571
key : ${{ runner.os }}-gui-node-modules-${{ hashFiles('gui/package-lock.json') }}
535
572
536
- # We can shave off another minute off our CI script by finding a way to share this with vscode-tests
537
573
- name : Run prepackage script
538
574
run : |
539
575
cd extensions/vscode
@@ -554,48 +590,37 @@ jobs:
554
590
cd binary
555
591
npm run build
556
592
557
- - name : Start test IDE
558
- run : |
559
- cd extensions/intellij
560
- export DISPLAY=:99.0
561
- Xvfb -ac :99 -screen 0 1920x1080x24 &
562
- sleep 10
563
- mkdir -p build/reports
564
- ./gradlew runIdeForUiTests &
593
+ - name : Run IDE
594
+ shell : ${{ matrix.shell }}
595
+ run : ${{ matrix.runIde }}
565
596
566
597
- name : Wait for JB connection
567
598
uses : jtalk/url-health-check-action@v3
568
599
with :
569
- url : http://127.0.0.1:8082
600
+ url : ${{ matrix.url }}
570
601
max-attempts : 15
571
602
retry-delay : 30s
572
603
573
604
- name : Run tests
574
- run : |
575
- cd extensions/intellij
576
- export DISPLAY=:99.0
577
- ./gradlew test
605
+ shell : ${{ matrix.shell }}
606
+ run : ${{ matrix.runTests }}
578
607
579
608
- name : Move video
580
609
if : ${{ failure() }}
581
- run : |
582
- cd extensions/intellij
583
- mv video build/reports
610
+ shell : ${{ matrix.shell }}
611
+ run : ${{ matrix.moveVideo }}
584
612
585
613
- name : Copy logs
586
614
if : ${{ failure() }}
587
- run : |
588
- cd extensions/intellij
589
- mv build/idea-sandbox/system/log/ build/reports
615
+ shell : ${{ matrix.shell }}
616
+ run : ${{ matrix.copyLogs }}
590
617
591
618
- name : Save fails report
592
619
if : ${{ failure() }}
593
620
uses : actions/upload-artifact@v4
594
621
with :
595
- name : jb-failure-report
596
- path : |
597
- ${{ github.workspace }}/extensions/intellij/build/reports
598
-
622
+ name : ${{ matrix.reportName }}
623
+ path : ${{ matrix.reportsPath }}
599
624
# GitHub does not have a way of requiring that all checks pass (you must manually select each job)
600
625
# This action at least lets us manage the list of required tests via source control
601
626
# so that creators of new jobs can add them to this list
0 commit comments