name: CI on: [push, pull_request] jobs: test: name: Test runs-on: ${{ matrix.os }} strategy: matrix: os: - macos-latest - ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install Node uses: actions/setup-node@v4 - name: Cache npm dependencies uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install npm dependencies run: npm ci - name: Ensure generated parser files are up to date run: npx tree-sitter generate - name: Run tree-sitter tests run: npx tree-sitter test - name: Check formatting run: npm run check-formatted integration-test: name: Integration Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install Node uses: actions/setup-node@v4 - name: Cache npm dependencies uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install npm dependencies run: npm ci - name: Ensure generated parser files are up to date run: npx tree-sitter generate - name: Run integration tests run: ./scripts/integration_test.sh