Migrate snippets support to community snippets, support multiple snippets #12754
Workflow file for this run
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 | |
- 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() |