aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/lint.yml
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2025-04-29 19:40:18 +0200
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:41 +0200
commit53dccb3a77da54a4e428275e8b44dbff77e0d47d (patch)
tree921e2ba83265f6cba3e828b3100692255e33f359 /.github/workflows/lint.yml
parentrefactor(locals): fix type annotations and warnings (diff)
downloadnvim-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/lint.yml')
-rw-r--r--.github/workflows/lint.yml52
1 files changed, 25 insertions, 27 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 5c29559d0..cf9e9364f 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,52 +1,50 @@
name: Lint
on:
+ push:
+ branches:
+ - "main"
pull_request:
branches:
- "main"
+ workflow_dispatch:
jobs:
- luacheck:
- name: Luacheck
+ lua:
+ name: Lint Lua files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Prepare
+ - name: Format
run: |
- sudo apt-get update
- sudo apt-get install luarocks -y
- sudo luarocks install luacheck
+ make formatlua
+ git diff --exit-code
- - name: Run Luacheck
- run: luacheck .
+ - name: Lint
+ run: make checklua
- stylua:
- name: StyLua
+ queries:
+ name: Lint query files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Lint with stylua
- uses: JohnnyMorganz/stylua-action@v4
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- version: latest
- args: --check .
- format-queries:
- name: Format queries
+ - name: Format
+ run: |
+ make formatquery
+ git diff --exit-code
+
+ - name: Lint
+ run: make lintquery
+
+ readme:
+ name: Lint docs
runs-on: ubuntu-latest
- env:
- NVIM_TAG: nightly
steps:
- uses: actions/checkout@v4
- - uses: tree-sitter/setup-action/cli@v1
- - name: Prepare
- run: |
- bash ./scripts/ci-install.sh
- - name: Lint
+ - name: Check SUPPORTED_LANGUAGES
run: |
- nvim -l scripts/install-parsers.lua query
- nvim -l scripts/format-queries.lua
+ make docs
git diff --exit-code