Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,20 @@ jobs:
with:
tool: cargo-llvm-cov

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Generate Node-driven Rust coverage
Expand All @@ -148,8 +155,8 @@ jobs:
eval "$(cargo llvm-cov show-env --export-prefix)"
cargo llvm-cov clean --workspace
cargo build -p bashkit-js --release
npm run build
npm test
pnpm run build
pnpm test
node --test __test__/runtime-compat/*.test.mjs
cargo llvm-cov report \
--release \
Expand Down
36 changes: 28 additions & 8 deletions .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,21 +45,28 @@ jobs:

- uses: Swatinem/rust-cache@v2

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Build native binding (generates type declarations)
run: npm run build
run: pnpm run build
working-directory: crates/bashkit-js

- name: Type-check (including tests)
run: npx tsc --noEmit -p tsconfig.check.json
run: pnpm exec tsc --noEmit -p tsconfig.check.json
working-directory: crates/bashkit-js

build-and-test:
Expand Down Expand Up @@ -106,17 +113,30 @@ jobs:

- uses: Swatinem/rust-cache@v2

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup Node.js
if: matrix.runtime == 'node'
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.version }}
cache: pnpm
cache-dependency-path: |
crates/bashkit-js/pnpm-lock.yaml
examples/pnpm-lock.yaml

- name: Setup Node.js (for napi build)
if: matrix.runtime != 'node'
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
cache-dependency-path: |
crates/bashkit-js/pnpm-lock.yaml
examples/pnpm-lock.yaml

- name: Setup Bun
if: matrix.runtime == 'bun'
Expand All @@ -131,21 +151,21 @@ jobs:
deno-version: ${{ matrix.version }}

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Build native binding
run: npm run build
run: pnpm run build
working-directory: crates/bashkit-js

- name: Run ava tests (Node only)
if: matrix.runtime == 'node'
run: npm test
run: pnpm test
working-directory: crates/bashkit-js

- name: Run native filesystem interop fixture test (Node only)
if: matrix.runtime == 'node'
run: npm run test:interop
run: pnpm run test:interop
working-directory: crates/bashkit-js

- name: Run runtime-compat tests (Node)
Expand All @@ -170,7 +190,7 @@ jobs:
- name: Install example dependencies and link local build
working-directory: examples
run: |
npm install
pnpm install --frozen-lockfile
rm -rf node_modules/@everruns/bashkit
mkdir -p node_modules/@everruns
ln -s ${{ github.workspace }}/crates/bashkit-js node_modules/@everruns/bashkit
Expand Down
76 changes: 50 additions & 26 deletions .github/workflows/publish-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,34 +38,39 @@ jobs:
settings:
- host: macos-latest
target: x86_64-apple-darwin
build: npm run build:napi -- --target x86_64-apple-darwin && npm run build:cjs && npm run build:ts
build: pnpm run build:napi -- --target x86_64-apple-darwin && pnpm run build:cjs && pnpm run build:ts
- host: macos-latest
target: aarch64-apple-darwin
build: npm run build:napi -- --target aarch64-apple-darwin && npm run build:cjs && npm run build:ts
build: pnpm run build:napi -- --target aarch64-apple-darwin && pnpm run build:cjs && pnpm run build:ts
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
build: npm run build:napi -- --target x86_64-unknown-linux-gnu --use-napi-cross && npm run build:cjs && npm run build:ts
build: pnpm run build:napi -- --target x86_64-unknown-linux-gnu --use-napi-cross && pnpm run build:cjs && pnpm run build:ts
- host: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
build: npm run build:napi -- --target aarch64-unknown-linux-gnu && npm run build:cjs && npm run build:ts
build: pnpm run build:napi -- --target aarch64-unknown-linux-gnu && pnpm run build:cjs && pnpm run build:ts
- host: windows-latest
target: x86_64-pc-windows-msvc
build: npm run build:napi -- --target x86_64-pc-windows-msvc && npm run build:cjs && npm run build:ts
build: pnpm run build:napi -- --target x86_64-pc-windows-msvc && pnpm run build:cjs && pnpm run build:ts
# TODO: WASM disabled — tokio "full" features (from bashkit core) are
# unsupported on wasm32. Needs architectural fix to gate tokio features.
# - host: ubuntu-latest
# target: wasm32-wasip1-threads
# build: npm run build:napi -- --target wasm32-wasip1-threads && npm run build:cjs && npm run build:ts
# build: pnpm run build:napi -- --target wasm32-wasip1-threads && pnpm run build:cjs && pnpm run build:ts

steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup node
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
cache-dependency-path: crates/bashkit-js/package-lock.json
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml

- name: Install Rust
uses: dtolnay/rust-toolchain@1.95.0
Expand All @@ -85,7 +90,7 @@ jobs:
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Build
Expand Down Expand Up @@ -145,16 +150,21 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup node
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
cache: npm
cache-dependency-path: crates/bashkit-js/package-lock.json
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml
architecture: ${{ matrix.settings.architecture }}

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Download native binding
Expand All @@ -170,7 +180,7 @@ jobs:
path: crates/bashkit-js

- name: Test bindings
run: npm test
run: pnpm test
working-directory: crates/bashkit-js

- name: Run examples
Expand All @@ -190,7 +200,7 @@ jobs:
shell: bash
run: |
echo '{"type":"module","private":true}' > package.json
npm install --no-save openai ai @ai-sdk/openai @langchain/core @langchain/langgraph @langchain/openai zod
pnpm add openai ai @ai-sdk/openai @langchain/core @langchain/langgraph @langchain/openai zod
rm -rf node_modules/@everruns/bashkit
mkdir -p node_modules/@everruns
if [ "$RUNNER_OS" = "Windows" ]; then
Expand Down Expand Up @@ -235,12 +245,17 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup node
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
cache: npm
cache-dependency-path: crates/bashkit-js/package-lock.json
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml

- name: Output docker params
id: docker
Expand All @@ -261,7 +276,7 @@ jobs:
" >> $GITHUB_OUTPUT

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Download native binding
Expand All @@ -282,7 +297,7 @@ jobs:
-w ${{ github.workspace }}/crates/bashkit-js
--platform ${{ steps.docker.outputs.PLATFORM }}
${{ steps.docker.outputs.IMAGE }}
npm test
./node_modules/.bin/ava

- name: Link package for examples
run: |
Expand All @@ -300,7 +315,7 @@ jobs:
- name: Install AI SDK dependencies and re-link
run: |
echo '{"type":"module","private":true}' > package.json
npm install --no-save openai ai @ai-sdk/openai @langchain/core @langchain/langgraph @langchain/openai zod
pnpm add openai ai @ai-sdk/openai @langchain/core @langchain/langgraph @langchain/openai zod
rm -rf node_modules/@everruns/bashkit
mkdir -p node_modules/@everruns
ln -s ${{ github.workspace }}/crates/bashkit-js node_modules/@everruns/bashkit
Expand Down Expand Up @@ -329,14 +344,18 @@ jobs:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v6
# - name: Setup pnpm
# uses: pnpm/action-setup@v4
# with:
# version: 10.33.0
# - name: Setup node
# uses: actions/setup-node@v6
# with:
# node-version: 24
# cache: npm
# cache-dependency-path: crates/bashkit-js/package-lock.json
# cache: pnpm
# cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml
# - name: Install dependencies
# run: npm install --cpu wasm32
# run: pnpm install --frozen-lockfile --cpu wasm32
# working-directory: crates/bashkit-js
# - name: Download native binding
# uses: actions/download-artifact@v8
Expand All @@ -349,7 +368,7 @@ jobs:
# name: js-stubs
# path: crates/bashkit-js
# - name: Test bindings
# run: npm test
# run: pnpm test
# env:
# NAPI_RS_FORCE_WASI: 1
# working-directory: crates/bashkit-js
Expand All @@ -373,16 +392,21 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0

- name: Setup node
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
cache-dependency-path: crates/bashkit-js/package-lock.json
cache: pnpm
cache-dependency-path: crates/bashkit-js/pnpm-lock.yaml
registry-url: "https://registry.npmjs.org"

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile
working-directory: crates/bashkit-js

- name: Download all native bindings
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,18 +55,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.11.1
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: npm
cache-dependency-path: site/package-lock.json
cache: pnpm
cache-dependency-path: site/pnpm-lock.yaml
- name: Install dependencies
working-directory: site
run: npm ci
run: pnpm install --frozen-lockfile
- name: Build site (runs all verify-* postbuild checks)
working-directory: site
run: npm run build
run: pnpm run build

# Gate job for branch protection
site-check:
Expand Down
Loading
Loading