Skip to content

fix(interpreter): set -e should not trigger on compound commands with… #425

fix(interpreter): set -e should not trigger on compound commands with…

fix(interpreter): set -e should not trigger on compound commands with… #425

Workflow file for this run

# JavaScript/TypeScript CI — builds NAPI-RS bindings and runs tests
# Triggered on PRs and pushes to main when JS-related files change.
name: JS
on:
push:
branches: [main]
paths:
- "crates/bashkit-js/**"
- "crates/bashkit/src/**"
- "examples/*.mjs"
- "examples/package.json"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/js.yml"
pull_request:
branches: [main]
paths:
- "crates/bashkit-js/**"
- "crates/bashkit/src/**"
- "examples/*.mjs"
- "examples/package.json"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/js.yml"
workflow_dispatch:
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN }}
jobs:
build-and-test:
name: Node ${{ matrix.node }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ["20", "22", "24", "latest"]
steps:
- uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
- name: Install dependencies
run: npm install
working-directory: crates/bashkit-js
- name: Build native binding
run: npm run build
working-directory: crates/bashkit-js
- name: Run tests
run: npm test
working-directory: crates/bashkit-js
- name: Install example dependencies and link local build
working-directory: examples
run: |
npm install
rm -rf node_modules/@everruns/bashkit
mkdir -p node_modules/@everruns
ln -s ${{ github.workspace }}/crates/bashkit-js node_modules/@everruns/bashkit
- name: Run examples (self-contained)
working-directory: examples
run: |
node bash_basics.mjs
node data_pipeline.mjs
node llm_tool.mjs
node langchain_integration.mjs
- name: Install Doppler CLI
if: env.DOPPLER_TOKEN != ''
uses: dopplerhq/cli-action@v4
- name: Run AI examples
if: env.DOPPLER_TOKEN != ''
working-directory: examples
run: |
doppler run -- node openai_tool.mjs
doppler run -- node vercel_ai_tool.mjs
doppler run -- node langchain_agent.mjs
# Gate job for branch protection
js-check:
name: JS Check
if: always()
needs: [build-and-test]
runs-on: ubuntu-latest
steps:
- name: Verify all jobs passed
run: |
if [[ "${{ needs.build-and-test.result }}" != "success" ]]; then
echo "JS build/test failed"
exit 1
fi