Skip to content

feat: bundle openai as an internal dependency, move to internal self types #44

feat: bundle openai as an internal dependency, move to internal self types

feat: bundle openai as an internal dependency, move to internal self types #44

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
static:
name: static (format · types · build · package)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- run: npm ci
- name: Format check (prettier)
run: npm run format:check
- name: Type check
run: npm run typecheck
- name: Build
run: npm run build
- name: Package checks (publint + are-the-types-wrong)
run: npm run check:pkg
- name: Smoke-test the packed tarball (CJS + ESM)
run: |
PKG=$(node -p "require('./package.json').name")
npm pack --pack-destination "$RUNNER_TEMP"
mkdir "$RUNNER_TEMP/smoke" && cd "$RUNNER_TEMP/smoke"
npm init -y >/dev/null
npm install "$RUNNER_TEMP"/*.tgz >/dev/null
node -e "if (!require('$PKG').Interfaze) { process.exit(1) }"
node --input-type=module -e "import { Interfaze } from '$PKG'; if (!Interfaze) process.exit(1)"
test:
name: test (node ${{ matrix.node }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- run: npm run test:coverage
secret-scan:
name: secret scan (gitleaks)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Scan working tree for leaked tokens/secrets
run: |
curl -sSfL "https://github.com/gitleaks/gitleaks/releases/download/v8.21.2/gitleaks_8.21.2_linux_x64.tar.gz" | tar -xz gitleaks
./gitleaks dir . --redact --no-banner