diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2025-04-29 19:40:18 +0200 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:41 +0200 |
| commit | 53dccb3a77da54a4e428275e8b44dbff77e0d47d (patch) | |
| tree | 921e2ba83265f6cba3e828b3100692255e33f359 /.github/workflows/test-core.yml | |
| parent | refactor(locals): fix type annotations and warnings (diff) | |
| download | nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar.gz nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar.bz2 nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar.lz nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar.xz nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.tar.zst nvim-treesitter-53dccb3a77da54a4e428275e8b44dbff77e0d47d.zip | |
feat(tests)!: new infrastructure based on makefile
Problem: Not easy to run all checks and tests locally. Redundant CI
workflows.
Solution: Separate CI into two workflows:
* lint: Lua files (stylua, luals), query files (valid captures,
predicates, directives using tsqueryls), docs
(SUPPORTED_LANGUAGES.md) -- does not need parser installation
* tests: parsers (ABI compatibility), query files (tsqueryls on
Linux/macOS; nvim on Windows), highlight and indent tests (separated
for better readability) -- needs parser installation (but only once)
Switch to https://github.com/nvim-treesitter/highlight-assertions fork
with ABI 15 support.
Run all tests (on Linux and macOS) through `make` (`formatlua`,
`checklua`, `lintquery`, `formatquery`, `checkquery`, `docs`, `tests`),
which downloads and caches all necessary dependencies.
Remove `update-readme` workflow (replaced by lint job on PRs).
Diffstat (limited to '.github/workflows/test-core.yml')
| -rw-r--r-- | .github/workflows/test-core.yml | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index 313084dab..05f8078ce 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -35,7 +35,7 @@ jobs: name: Generate and compile parsers run: $NVIM -l ./scripts/install-parsers.lua --generate --max-jobs=2 - - if: inputs.type == 'queries' + - if: inputs.type == 'build' name: Setup Parsers Cache id: parsers-cache uses: actions/cache@v4 @@ -47,9 +47,25 @@ jobs: './lua/nvim-treesitter/install.lua', './lua/nvim-treesitter/parsers.lua') }} - - if: inputs.type == 'queries' + - if: inputs.type == 'build' name: Compile parsers run: $NVIM -l ./scripts/install-parsers.lua - - name: Check query files + - 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 |
