Use snip
as the spoken form for snippets
#12773
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run Tests | |
permissions: read-all | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, synchronize, reopened] | |
merge_group: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
test: | |
name: Test | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
app_version: [stable] | |
include: | |
- os: ubuntu-latest | |
app_version: legacy | |
runs-on: ${{ matrix.os }} | |
env: | |
APP_VERSION: ${{ matrix.app_version }} | |
NEOVIM_VERSION: ${{ matrix.app_version == 'stable' && 'stable' || 'v0.10.0' }} | |
VSCODE_CRASH_DIR: ${{ github.workspace }}/artifacts/dumps | |
VSCODE_LOGS_DIR: ${{ github.workspace }}/artifacts/logs | |
CURSORLESS_REPO_ROOT: ${{ github.workspace }} | |
TEMP_DIR: ${{ github.workspace }}/temp | |
NODE_OPTIONS: "--max-old-space-size=4096" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# FIXME: https://github.com/cursorless-dev/cursorless/issues/2817 | |
- name: Upgrade Corepack | |
run: npm install --global --force corepack@0.31.0 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
cache: pnpm | |
- name: Creating log directories | |
run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" "${{ env.TEMP_DIR }}" | |
shell: bash | |
- name: Install dependencies | |
run: pnpm --color install | |
- name: Compile | |
run: pnpm --color compile | |
- name: Build | |
run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build | |
- name: Run tests (Linux) | |
run: xvfb-run -a pnpm --color test | |
if: runner.os == 'Linux' | |
- name: Run tests (Other) | |
run: pnpm --color test | |
if: runner.os != 'Linux' | |
- name: Run Talon-JS tests (Linux) | |
run: xvfb-run -a pnpm -F @cursorless/test-harness test:talonJs | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Run Talon-JS tests (Other) | |
run: pnpm -F @cursorless/test-harness test:talonJs | |
if: runner.os != 'Linux' && matrix.app_version == 'stable' | |
- name: Run Cursorless-everywhere-talon tests (Linux) | |
run: xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Run Cursorless-everywhere-talon tests (Other) | |
run: pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs | |
if: runner.os != 'Linux' && matrix.app_version == 'stable' | |
- name: Install neovim dependencies | |
run: bash -x scripts/install-neovim-dependencies.sh | |
- name: Setup neovim (Linux) | |
uses: rhysd/action-setup-vim@v1 | |
id: vim | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
with: | |
version: ${{ env.NEOVIM_VERSION }} | |
neovim: true | |
- name: Run neovim tests (Linux) | |
run: xvfb-run -a pnpm -F @cursorless/test-harness test:neovim | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
env: | |
NEOVIM_PATH: ${{ steps.vim.outputs.executable }} | |
- name: Run neovim lua tests (Linux) | |
uses: ./.github/actions/test-neovim-lua/ | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Run neovim lua lint (Linux) | |
uses: ./.github/actions/lint-lua-ls/ | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Create vscode dist that can be installed locally | |
run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Test create vsix | |
id: createVsix | |
uses: HaaLeo/publish-vscode-extension@v1 | |
with: | |
pat: none | |
packagePath: packages/cursorless-vscode/dist | |
dryRun: true | |
- name: Rename vsix | |
run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
- name: Upload vsix | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'Linux' && matrix.app_version == 'stable' | |
with: | |
name: vsix | |
path: cursorless-development.vsix | |
- name: Archive logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs | |
path: ${{ env.VSCODE_LOGS_DIR }} | |
if: failure() | |
- name: Archive dumps | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dumps | |
path: ${{ env.VSCODE_CRASH_DIR }} | |
if: failure() |