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/lint.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/lint.yml')
| -rw-r--r-- | .github/workflows/lint.yml | 52 |
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 |
