1111 branches : [main]
1212 workflow_dispatch :
1313
14+ env :
15+ CURSORLESS_REPO_ROOT : ${{ github.workspace }}
16+ TEMP_DIR : ${{ github.workspace }}/temp
17+ NODE_OPTIONS : " --max-old-space-size=4096"
18+
1419jobs :
15- test :
20+ lint :
21+ name : Lint
22+ runs-on : ubuntu-latest
23+
24+ steps :
25+ - name : Checkout repository
26+ uses : actions/checkout@v6
27+
28+ - name : Set up Node.js
29+ uses : ./.github/actions/setup-node
30+
31+ - name : Lint
32+ run : pnpm --color lint
33+
34+ test-main :
1635 name : Test
1736 strategy :
1837 fail-fast : false
@@ -23,15 +42,10 @@ jobs:
2342 - os : ubuntu-latest
2443 app_version : legacy
2544 runs-on : ${{ matrix.os }}
26-
2745 env :
2846 APP_VERSION : ${{ matrix.app_version }}
29- NEOVIM_VERSION : ${{ matrix.app_version == 'stable' && 'stable' || 'v0.10.0' }}
3047 VSCODE_CRASH_DIR : ${{ github.workspace }}/artifacts/dumps
3148 VSCODE_LOGS_DIR : ${{ github.workspace }}/artifacts/logs
32- CURSORLESS_REPO_ROOT : ${{ github.workspace }}
33- TEMP_DIR : ${{ github.workspace }}/temp
34- NODE_OPTIONS : " --max-old-space-size=4096"
3549
3650 steps :
3751 - name : Git config
@@ -40,31 +54,19 @@ jobs:
4054 - name : Checkout repository
4155 uses : actions/checkout@v6
4256
43- - name : Install pnpm
44- uses : pnpm/action-setup@v4
45-
4657 - name : Set up Node.js
47- uses : actions/setup-node@v6
48- with :
49- node-version-file : .nvmrc
50- cache : pnpm
58+ uses : ./.github/actions/setup-node
5159
5260 - name : Creating log directories
5361 run : mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" "${{ env.TEMP_DIR }}"
5462 shell : bash
5563
56- - name : Install dependencies
57- run : pnpm --color install
58-
5964 - name : Compile
6065 run : pnpm --color compile
6166
6267 - name : Build
6368 run : pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
6469
65- - name : Lint
66- run : pnpm --color lint
67-
6870 - name : Run unit tests (Linux)
6971 run : xvfb-run -a pnpm --color test
7072 if : runner.os == 'Linux'
@@ -87,40 +89,15 @@ jobs:
8789
8890 - name : Run Talon-JS tests (Win,Mac)
8991 run : pnpm -F @cursorless/test-harness test:talonJs
90- if : runner.os != 'Linux' && matrix.app_version == 'stable'
92+ if : runner.os != 'Linux'
9193
9294 - name : Run Cursorless-everywhere-talon tests (Linux)
9395 run : xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
9496 if : runner.os == 'Linux' && matrix.app_version == 'stable'
9597
9698 - name : Run Cursorless-everywhere-talon tests (Win,Mac)
9799 run : pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
98- if : runner.os != 'Linux' && matrix.app_version == 'stable'
99-
100- - name : Install neovim dependencies
101- run : bash -x scripts/install-neovim-dependencies.sh
102-
103- - name : Setup neovim (Linux)
104- uses : rhysd/action-setup-vim@v1
105- id : vim
106- if : runner.os == 'Linux' && matrix.app_version == 'stable'
107- with :
108- version : ${{ env.NEOVIM_VERSION }}
109- neovim : true
110-
111- - name : Run neovim tests (Linux)
112- run : xvfb-run -a pnpm -F @cursorless/test-harness test:neovim
113- if : runner.os == 'Linux' && matrix.app_version == 'stable'
114- env :
115- NEOVIM_PATH : ${{ steps.vim.outputs.executable }}
116-
117- - name : Run neovim lua tests (Linux)
118- uses : ./.github/actions/test-neovim-lua/
119- if : runner.os == 'Linux' && matrix.app_version == 'stable'
120-
121- - name : Run neovim lua lint (Linux)
122- uses : ./.github/actions/lint-lua-ls/
123- if : runner.os == 'Linux' && matrix.app_version == 'stable'
100+ if : runner.os != 'Linux'
124101
125102 - name : Create vscode dist that can be installed locally
126103 run : pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
@@ -158,3 +135,43 @@ jobs:
158135 name : dumps-${{ matrix.os }}-${{ matrix.app_version }}
159136 path : ${{ env.VSCODE_CRASH_DIR }}
160137 if : failure()
138+
139+ test-neovim :
140+ name : Test Neovim
141+ runs-on : ubuntu-latest
142+
143+ steps :
144+ - name : Git config
145+ run : git config --global core.autocrlf false
146+
147+ - name : Checkout repository
148+ uses : actions/checkout@v6
149+
150+ - name : Set up Node.js
151+ uses : ./.github/actions/setup-node
152+
153+ - name : Compile
154+ run : pnpm --color compile
155+
156+ - name : Build
157+ run : pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
158+
159+ - name : Install neovim dependencies
160+ run : bash -x scripts/install-neovim-dependencies.sh
161+
162+ - name : Setup neovim
163+ uses : rhysd/action-setup-vim@v1
164+ id : vim
165+ with :
166+ neovim : true
167+
168+ - name : Run neovim tests
169+ run : xvfb-run -a pnpm -F @cursorless/test-harness test:neovim
170+ env :
171+ NEOVIM_PATH : ${{ steps.vim.outputs.executable }}
172+
173+ - name : Run neovim lua tests
174+ uses : ./.github/actions/test-neovim-lua/
175+
176+ - name : Run neovim lua lint
177+ uses : ./.github/actions/lint-lua-ls/
0 commit comments