Skip to content

Commit 082be49

Browse files
committed
Add bindings CI workflow
1 parent 8b857fb commit 082be49

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

.github/workflows/ci_bind.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: CI-Bindings
2+
3+
on:
4+
push:
5+
pull_request:
6+
paths:
7+
- grammar.js
8+
- src/**
9+
- test/**
10+
- bindings/**
11+
- binding.gyp
12+
13+
concurrency:
14+
group: ${{github.workflow}}-${{github.ref}}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
test:
19+
name: Test bindings
20+
21+
runs-on: ubuntu-latest
22+
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
abi_version: [14, 15]
27+
28+
env:
29+
TREE_SITTER_ABI_VERSION: ${{ matrix.abi_version }}
30+
31+
steps:
32+
- name: Checkout repository
33+
uses: actions/checkout@v4
34+
35+
- name: Set up tree-sitter
36+
uses: tree-sitter/setup-action/cli@v1
37+
38+
- name: Install dependencies
39+
run: npm ci --omit dev --omit peer --omit optional
40+
41+
- name: Python binding
42+
uses: tree-sitter/parser-test-action@v2
43+
with:
44+
test-python: true
45+
46+
- name: Other bindings
47+
uses: tree-sitter/parser-test-action@v2
48+
with:
49+
test-rust: true
50+
test-go: true
51+
# INFO: With tree-sitter 0.25.6 Swift bindings did not work
52+
# test-swift: true
53+
54+
- name: Set up Node.js
55+
uses: actions/setup-node@v4
56+
with:
57+
cache: npm
58+
node-version: latest
59+
cache-dependency-path: package-lock.json
60+
61+
- name: Build module
62+
shell: sh
63+
run: npm install
64+
65+
- name: list module
66+
shell: sh
67+
run: npm list
68+
69+
- name: Run tests
70+
shell: sh
71+
run: node --test bindings/node/*_test.js
72+
73+
- name: Generate parser
74+
run: |
75+
tree-sitter generate --abi=${{ matrix.abi_version }}
76+
[[ ! -d node_modules ]] || rm -rf node_modules

0 commit comments

Comments
 (0)