11name : Run Tests
22permissions : read-all
3+
34on :
45 push :
56 branches :
@@ -22,79 +23,121 @@ jobs:
2223 - os : ubuntu-latest
2324 app_version : legacy
2425 runs-on : ${{ matrix.os }}
26+
2527 env :
2628 APP_VERSION : ${{ matrix.app_version }}
27- # FIXME: https://github.com/cursorless-dev/cursorless/issues/2793
28- # NEOVIM_VERSION: ${{ matrix.app_version == 'stable' && 'stable' || 'v0.10.0' }}
29- NEOVIM_VERSION : ${{ matrix.app_version == 'stable' && 'v0.10.3' || 'v0.10.0' }}
29+ NEOVIM_VERSION : ${{ matrix.app_version == 'stable' && 'stable' || 'v0.10.0' }}
3030 VSCODE_CRASH_DIR : ${{ github.workspace }}/artifacts/dumps
3131 VSCODE_LOGS_DIR : ${{ github.workspace }}/artifacts/logs
3232 CURSORLESS_REPO_ROOT : ${{ github.workspace }}
3333 TEMP_DIR : ${{ github.workspace }}/temp
3434 NODE_OPTIONS : " --max-old-space-size=4096"
35+
3536 steps :
36- - uses : actions/checkout@v4
37- - run : corepack enable
38- - uses : actions/setup-node@v4
37+ - name : Checkout repository
38+ uses : actions/checkout@v4
39+
40+ - name : Enable Corepack
41+ run : corepack enable
42+
43+ - name : Set up Node.js
44+ uses : actions/setup-node@v4
3945 with :
4046 node-version-file : .nvmrc
4147 cache : pnpm
42- - run : mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" "${{ env.TEMP_DIR }}"
48+
49+ - name : Creating log directories
50+ run : mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" "${{ env.TEMP_DIR }}"
4351 shell : bash
44- - run : pnpm --color install
45- - run : pnpm --color compile
46- - run : pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
47- - run : xvfb-run -a pnpm --color test
52+
53+ - name : Install dependencies
54+ run : pnpm --color install
55+
56+ - name : Compile
57+ run : pnpm --color compile
58+
59+ - name : Build
60+ run : pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
61+
62+ - name : Run tests (Linux)
63+ run : xvfb-run -a pnpm --color test
4864 if : runner.os == 'Linux'
49- - run : pnpm --color test
65+
66+ - name : Run tests (Other)
67+ run : pnpm --color test
5068 if : runner.os != 'Linux'
51- - run : xvfb-run -a pnpm -F @cursorless/test-harness test:talonJs
69+
70+ - name : Run Talon-JS tests (Linux)
71+ run : xvfb-run -a pnpm -F @cursorless/test-harness test:talonJs
5272 if : runner.os == 'Linux' && matrix.app_version == 'stable'
53- - run : pnpm -F @cursorless/test-harness test:talonJs
73+
74+ - name : Run Talon-JS tests (Other)
75+ run : pnpm -F @cursorless/test-harness test:talonJs
5476 if : runner.os != 'Linux' && matrix.app_version == 'stable'
55- - run : xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
77+
78+ - name : Run Cursorless-everywhere-talon tests (Linux)
79+ run : xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
5680 if : runner.os == 'Linux' && matrix.app_version == 'stable'
57- - run : pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
81+
82+ - name : Run Cursorless-everywhere-talon tests (Other)
83+ run : pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
5884 if : runner.os != 'Linux' && matrix.app_version == 'stable'
59- - run : bash -x scripts/install-neovim-dependencies.sh
60- - uses : rhysd/action-setup-vim@v1
85+
86+ - name : Install neovim dependencies
87+ run : bash -x scripts/install-neovim-dependencies.sh
88+
89+ - name : Setup neovim (Linux)
90+ uses : rhysd/action-setup-vim@v1
6191 id : vim
92+ if : runner.os == 'Linux' && matrix.app_version == 'stable'
6293 with :
6394 version : ${{ env.NEOVIM_VERSION }}
6495 neovim : true
65- - name : Run neovim tests
96+
97+ - name : Run neovim tests (Linux)
6698 run : xvfb-run -a pnpm -F @cursorless/test-harness test:neovim
67- if : runner.os == 'Linux'
99+ if : runner.os == 'Linux' && matrix.app_version == 'stable'
68100 env :
69101 NEOVIM_PATH : ${{ steps.vim.outputs.executable }}
70- - uses : ./.github/actions/test-neovim-lua/
102+
103+ - name : Run neovim lua tests (Linux)
104+ uses : ./.github/actions/test-neovim-lua/
71105 if : runner.os == 'Linux' && matrix.app_version == 'stable'
72- - uses : ./.github/actions/lint-lua-ls/
106+
107+ - name : Run neovim lua lint (Linux)
108+ uses : ./.github/actions/lint-lua-ls/
73109 if : runner.os == 'Linux' && matrix.app_version == 'stable'
110+
74111 - name : Create vscode dist that can be installed locally
75112 run : pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
76113 if : runner.os == 'Linux' && matrix.app_version == 'stable'
114+
77115 - name : Test create vsix
78116 id : createVsix
79117 uses : HaaLeo/publish-vscode-extension@v1
80118 with :
81119 pat : none
82120 packagePath : packages/cursorless-vscode/dist
83121 dryRun : true
84- - run : mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
122+
123+ - name : Rename vsix
124+ run : mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
85125 if : runner.os == 'Linux' && matrix.app_version == 'stable'
126+
86127 - name : Upload vsix
87128 uses : actions/upload-artifact@v4
88129 if : runner.os == 'Linux' && matrix.app_version == 'stable'
89130 with :
90131 name : vsix
91132 path : cursorless-development.vsix
133+
92134 - name : Archive logs
93135 uses : actions/upload-artifact@v4
94136 with :
95137 name : logs
96138 path : ${{ env.VSCODE_LOGS_DIR }}
97139 if : failure()
140+
98141 - name : Archive dumps
99142 uses : actions/upload-artifact@v4
100143 with :
0 commit comments