Skip to content

fix tree-sitter install on node 24 #95

fix tree-sitter install on node 24

fix tree-sitter install on node 24 #95

Workflow file for this run

# Copyright (c) 2026, Salesforce, Inc.
# All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# For full license text, see the LICENSE file in the repo root or https://www.apache.org/licenses/LICENSE-2.0
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
TREE_SITTER_VERSION: '0.25.3'
jobs:
lint-and-typecheck:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'
cache: 'pnpm'
- name: Cache tree-sitter CLI
id: cache-tree-sitter
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ~/.local/bin/tree-sitter
key: tree-sitter-${{ env.TREE_SITTER_VERSION }}-linux-x64
- name: Install tree-sitter CLI
if: steps.cache-tree-sitter.outputs.cache-hit != 'true'
run: |
mkdir -p ~/.local/bin
curl -sSL "https://github.com/tree-sitter/tree-sitter/releases/download/v${TREE_SITTER_VERSION}/tree-sitter-linux-x64.gz" \
| gunzip > ~/.local/bin/tree-sitter
chmod +x ~/.local/bin/tree-sitter
- name: Add tree-sitter to PATH
run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Check formatting
run: pnpm format:check
- name: Run linter
run: pnpm lint
- name: Run type check
run: pnpm typecheck
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'
cache: 'pnpm'
- name: Cache tree-sitter CLI
id: cache-tree-sitter
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ~/.local/bin/tree-sitter
key: tree-sitter-${{ env.TREE_SITTER_VERSION }}-linux-x64
- name: Install tree-sitter CLI
if: steps.cache-tree-sitter.outputs.cache-hit != 'true'
run: |
mkdir -p ~/.local/bin
curl -sSL "https://github.com/tree-sitter/tree-sitter/releases/download/v${TREE_SITTER_VERSION}/tree-sitter-linux-x64.gz" \
| gunzip > ~/.local/bin/tree-sitter
chmod +x ~/.local/bin/tree-sitter
- name: Add tree-sitter to PATH
run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test
server-security-test:
name: Server Path Traversal Regression
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'
- name: Run path traversal regression suite
run: node scripts/test-path-traversal.mjs
validate-docs:
name: Validate Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Validate code blocks in docs
run: pnpm --filter @agentscript/docs validate-code-blocks
continue-on-error: true
node24-install:
name: Node 24 Install
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '24'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
build:
name: Build
runs-on: ubuntu-latest
needs:
[
lint-and-typecheck,
test,
server-security-test,
validate-docs,
node24-install,
]
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'
cache: 'pnpm'
- name: Cache tree-sitter CLI
id: cache-tree-sitter
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ~/.local/bin/tree-sitter
key: tree-sitter-${{ env.TREE_SITTER_VERSION }}-linux-x64
- name: Install tree-sitter CLI
if: steps.cache-tree-sitter.outputs.cache-hit != 'true'
run: |
mkdir -p ~/.local/bin
curl -sSL "https://github.com/tree-sitter/tree-sitter/releases/download/v${TREE_SITTER_VERSION}/tree-sitter-linux-x64.gz" \
| gunzip > ~/.local/bin/tree-sitter
chmod +x ~/.local/bin/tree-sitter
- name: Add tree-sitter to PATH
run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build packages
run: pnpm build