Skip to content
This repository was archived by the owner on Jun 23, 2026. It is now read-only.

refactor cache simplification #262

refactor cache simplification

refactor cache simplification #262

Workflow file for this run

name: CI
on:
push:
branches: [main, next]
pull_request:
branches: [main, next]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
lint-rust:
name: Lint (Rust)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: swatinem/rust-cache@v2
- run: cargo fmt --all -- --check
- run: cargo clippy --workspace --all-targets -- -D warnings
test-rust:
name: Test (Rust)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: swatinem/rust-cache@v2
- run: cargo test --workspace --exclude xmdx-napi
test-napi:
name: Test (NAPI)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: swatinem/rust-cache@v2
- uses: oven-sh/setup-bun@v2
- name: Install & build
working-directory: crates/napi
run: bun install && bun run build
- run: cargo test -p xmdx-napi
- name: Run JS tests
working-directory: crates/napi
run: bun test
test-wasm:
name: Test (WASM)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- uses: swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: oven-sh/setup-bun@v2
- run: cargo install wasm-bindgen-cli@0.2.108
- run: cargo build -p xmdx-wasm --target wasm32-unknown-unknown --release
- run: wasm-bindgen target/wasm32-unknown-unknown/release/xmdx_wasm.wasm --out-dir packages/xmdx/wasm --target web
- run: pnpm install --frozen-lockfile
- name: Build NAPI (for parity tests)
working-directory: crates/napi
run: bun run build
- name: Run WASM + edge tests
working-directory: packages/xmdx
run: bun test
build-ts:
name: Build (TypeScript)
runs-on: ubuntu-latest
needs: [test-napi]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: oven-sh/setup-bun@v2
- run: pnpm install
- run: pnpm build:napi
- run: pnpm build
- run: pnpm --filter xmdx typecheck
- run: pnpm --filter astro-xmdx typecheck
- run: pnpm --filter @xmdx/astro-loader lint
test-ts:
name: Test (TypeScript)
runs-on: ubuntu-latest
needs: [build-ts]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: swatinem/rust-cache@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: oven-sh/setup-bun@v2
- run: pnpm install
- run: pnpm build:napi
- run: pnpm build
- run: pnpm test
lint-eslint:
name: Lint (ESLint)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: pnpm install
- run: pnpm lint:eslint
lint-knip:
name: Lint (Knip)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: pnpm install
- run: pnpm knip