File: ci.yml

package info (click to toggle)
tree-sitter-lua 0.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 772 kB
  • sloc: ansic: 13,368; javascript: 457; lisp: 229; makefile: 106; python: 102; cpp: 13; sh: 9
file content (108 lines) | stat: -rw-r--r-- 3,006 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
name: CI

on:
  push:
    branches: [main]
  pull_request:
  workflow_dispatch:

concurrency:
  group: ${{github.workflow}}-${{github.ref}}
  cancel-in-progress: true

jobs:
  test:
    name: Test parser
    runs-on: ${{matrix.os}}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up tree-sitter
        uses: tree-sitter/setup-action@v2
        with:
          install-lib: false

      - name: Run tests
        uses: tree-sitter/parser-test-action@v2

      - name: Clone apisix corpus
        uses: actions/checkout@v4
        with:
          path: examples/apisix
          repository: apache/apisix
          sparse-checkout: apisix/
      - name: Clone kong corpus
        uses: actions/checkout@v4
        with:
          path: examples/kong
          repository: Kong/kong
          sparse-checkout: kong/
      - name: Clone lua corpus
        uses: actions/checkout@v4
        with:
          path: examples/lua
          repository: lua/lua
          ref: e05590591410a5e007a1e3f1691f6c1cf9d8fe45
          sparse-checkout: testes/
      - name: Clone luvit corpus
        uses: actions/checkout@v4
        with:
          path: examples/luvit
          repository: luvit/luvit
      - name: Clone neovim corpus
        uses: actions/checkout@v4
        with:
          path: examples/neovim
          repository: neovim/neovim
          sparse-checkout-cone-mode: false
          sparse-checkout: |-
            /test/**/*.lua
            /scripts/**/*.lua
            /runtime/**/*.lua
      - name: Clone xmake corpus
        uses: actions/checkout@v4
        if: runner.os != 'Windows'
        with:
          path: examples/xmake
          repository: xmake-io/xmake

      - name: Parse examples
        uses: tree-sitter/parse-action@v4
        with:
          files: |-
            examples/apisix/**/*.lua
            examples/kong/**/*.lua
            examples/lua/**/*.lua
            examples/luvit/**/*.lua
            examples/neovim/**/*.lua
            examples/xmake/**/*.lua
            # FIXME: these fail to parse on Windows
            !examples/lua/testes/api.lua
            !examples/lua/testes/calls.lua
            !examples/lua/testes/db.lua
          invalid-files: |-
            examples/neovim/test/functional/fixtures/lua/syntax_error.lua

  fuzz:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 2
      - name: Check for scanner changes
        id: scanner-changes
        run: |-
          if git diff --quiet HEAD^ -- src/scanner.c; then
            printf 'changed=false\n' >> "$GITHUB_OUTPUT"
          else
            printf 'changed=true\n' >> "$GITHUB_OUTPUT"
          fi
      - name: Fuzz parser
        uses: tree-sitter/fuzz-action@v4
        if: steps.scanner-changes.outputs.changed == 'true'