Skip to content

refactor: use tsdl and remove ad-hoc shell scripts #549

refactor: use tsdl and remove ad-hoc shell scripts

refactor: use tsdl and remove ad-hoc shell scripts #549

Workflow file for this run

name: ci
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
test:
strategy:
matrix:
ruby: [3.0, 3.1, 3.2, 3.3]
platform:
- { os: ubuntu, target: linux-x64, extension: so }
- { os: macos, target: macos-arm64, extension: bundle }
sys-libs:
- disable
- enable
runs-on: ${{ matrix.platform.os }}-latest
steps:
- uses: actions/checkout@v3
- uses: extractions/setup-just@v1
- name: setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: build and install tree-sitter
if: matrix.sys-libs == 'enable'
run: |
just setup-ts
cd tree-sitter && sudo make install
sudo rm /usr/local/lib/libtree-sitter.a # to guarantee dynamic linking
- name: ldconfig
if: matrix.sys-libs == 'enable' && matrix.platform.os == 'ubuntu'
run: sudo ldconfig -v
- name: setup and compile all parsers
env:
PLATFORM: ${{ matrix.platform.target }}
run: just setup
- name: compile
run: just compile --${{ matrix.sys-libs }}-sys-libs
- name: verify --enable-sys-libs (dynamic linking)
if: matrix.sys-libs == 'enable'
run: just nm | grep -q ts_parser_new
- name: verify --disable-sys-libs (static linking)
if: matrix.sys-libs != 'enable'
run: |
if just nm | grep -q ts_parser_new; then
false
else
true
fi;
- name: test compiled parsers
run: just test
- name: delete compiled parsers
run: rm -r vendor/parsers && ls -lah
- name: download pre-compiled parsers
run: just dl-parsers ${{ matrix.platform.target }}
- name: install math
run: just setup-parsers
- name: test downloaded parsers
run: just test
- name: package gem
run: just gem
- name: package native gem
run: just gem-native
lint-ruby:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: extractions/setup-just@v1
- name: setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true
- name: Lint
run: just lint
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: extractions/setup-just@v1
- name: setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
bundler-cache: true
- name: Typecheck
run: just tc