mirror of
https://github.com/tree-sitter/tree-sitter.git
synced 2026-09-10 07:36:22 -04:00
97 lines
3.2 KiB
YAML
97 lines
3.2 KiB
YAML
name: nvim-treesitter parser tests
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'lib/**'
|
|
- 'crates/cli/**'
|
|
- 'crates/config/**'
|
|
- 'crates/generate/**'
|
|
- 'crates/loader/**'
|
|
- '.github/workflows/nvim_ts.yml'
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check_compilation:
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
type: [generate, build]
|
|
name: ${{ matrix.os }} - ${{ matrix.type }}
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
NVIM: ${{ matrix.os == 'windows-latest' && 'nvim.exe' || 'nvim' }}
|
|
NVIM_TAG: stable
|
|
NVIM_DIR: neovim
|
|
NVIM_TS_DIR: nvim-treesitter
|
|
steps:
|
|
- uses: actions/checkout@v7.0.1
|
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
- run: cargo build --profile optimize
|
|
|
|
- name: Clone Neovim
|
|
uses: actions/checkout@v7.0.1
|
|
with:
|
|
repository: neovim/neovim
|
|
ref: ${{ env.NVIM_TAG }}
|
|
path: ${{ env.NVIM_DIR }}
|
|
|
|
- if: runner.os != 'Windows'
|
|
name: Setup environment (Posix)
|
|
run: |
|
|
echo ${{ github.workspace }}/target/optimize >> "$GITHUB_PATH"
|
|
echo ${{ github.workspace }}/neovim/build/bin >> "$GITHUB_PATH"
|
|
echo "VIMRUNTIME=${{ github.workspace }}/neovim/runtime" >> "$GITHUB_ENV"
|
|
|
|
- if: runner.os == 'Windows'
|
|
name: Setup environment (why can't you just be normal?!)
|
|
run: |
|
|
${{ env.NVIM_DIR }}/.github/scripts/env.ps1
|
|
echo ${{ github.workspace }}/target/optimize >> "$env:GITHUB_PATH"
|
|
echo ${{ github.workspace }}/neovim/build/bin >> "$env:GITHUB_PATH"
|
|
echo "VIMRUNTIME=${{ github.workspace }}/neovim/runtime" >> "$env:GITHUB_ENV"
|
|
|
|
- name: Build Neovim
|
|
working-directory: ${{ env.NVIM_DIR }}
|
|
run: |
|
|
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE=Release -D TREESITTER_URL=https://github.com/tree-sitter/tree-sitter/archive/${{ github.event.pull_request.head.sha }}.tar.gz -D DEPS_IGNORE_SHA=TRUE
|
|
cmake --build .deps --config Release
|
|
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
|
|
cmake --build build --config Release
|
|
|
|
- name: Clone nvim-treesitter
|
|
uses: actions/checkout@v7.0.1
|
|
with:
|
|
repository: nvim-treesitter/nvim-treesitter
|
|
path: ${{ env.NVIM_TS_DIR }}
|
|
|
|
- if: matrix.type == 'generate'
|
|
name: Generate and compile parsers
|
|
run: $NVIM -l ./scripts/install-parsers.lua --generate --max-jobs=10
|
|
working-directory: ${{ env.NVIM_TS_DIR }}
|
|
shell: bash
|
|
|
|
- if: matrix.type == 'build'
|
|
name: Compile parsers
|
|
run: $NVIM -l ./scripts/install-parsers.lua --max-jobs=10
|
|
working-directory: ${{ env.NVIM_TS_DIR }}
|
|
shell: bash
|
|
|
|
- if: "!cancelled()"
|
|
name: Test parsers
|
|
run: $NVIM -l ./scripts/check-parsers.lua
|
|
working-directory: ${{ env.NVIM_TS_DIR }}
|
|
shell: bash
|
|
|
|
- if: "!cancelled()"
|
|
name: Test queries
|
|
run: $NVIM -l ./scripts/check-queries.lua
|
|
working-directory: ${{ env.NVIM_TS_DIR }}
|
|
shell: bash
|