on: workflow_call: inputs: type: type: string workflow_dispatch: defaults: run: shell: bash jobs: check_compilation: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] nvim_tag: [nightly] name: ${{ matrix.os }} runs-on: ${{ matrix.os }} env: NVIM: ${{ matrix.os == 'windows-latest' && 'nvim-win64\\bin\\nvim.exe' || 'nvim' }} steps: - uses: actions/checkout@v6 - uses: tree-sitter/setup-action/cli@v2 - uses: ilammy/msvc-dev-cmd@v1 - name: Install and prepare Neovim env: NVIM_TAG: ${{ matrix.nvim_tag }} run: | bash ./scripts/ci-install.sh - if: inputs.type == 'build' name: Compile parsers run: $NVIM -l ./scripts/install-parsers.lua --max-jobs=10 - if: inputs.type == 'generate' name: Generate and compile parsers run: $NVIM -l ./scripts/install-parsers.lua --generate --max-jobs=2 - name: Check parsers run: $NVIM -l ./scripts/check-parsers.lua - name: Check queries (nvim) if: ${{ matrix.os == 'windows-latest' }} run: $NVIM -l ./scripts/check-queries.lua - name: Check queries (tsqueryls) if: ${{ matrix.os != 'windows-latest' }} run: make checkquery - name: Run highlight tests if: ${{ matrix.os != 'windows-latest' }} run: make tests TESTS=query NVIM_BIN=$NVIM - name: Run indents tests if: ${{ matrix.os != 'windows-latest' }} run: make tests TESTS=indent NVIM_BIN=$NVIM