fix(interpreter): handle compound array assignment in local builtin #426
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 |