Skip to content

feat(bulk-ingest): add CSV input support via --source-format csv #679

feat(bulk-ingest): add CSV input support via --source-format csv

feat(bulk-ingest): add CSV input support via --source-format csv #679

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
permissions: {}
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
test-node:
name: Test Node.js
permissions:
contents: read
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node-version: [22.x, 24.x, 25.x]
runs-on: ${{ matrix.os }}
# Per-endpoint Zod schemas (#171) compile to ~72 MB of .d.ts; tsc needs
# more than the 2 GB Node default to hold the type graph during emit.
env:
NODE_OPTIONS: --max-old-space-size=6144
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: ${{ matrix.node-version }}
- name: Install
run: npm ci
- name: Run unit tests
run: npm test
shell: bash
license-header:
name: Check SPDX license header
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
- name: Install
run: npm ci
- name: License header check
run: npm run test:spdx
notice-file:
name: Check NOTICE.txt is up to date
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
- name: Install
run: npm ci
- name: Verify NOTICE.txt
run: npm run test:notice
test-bun:
name: Test Bun
permissions:
contents: read
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
# `bun run build` shells out to Node-hosted tsc; same heap constraint as
# the Node job above.
env:
NODE_OPTIONS: --max-old-space-size=6144
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
- name: Install
run: bun install
- name: Build
run: bun run build
- name: Run unit tests
# 30 s per test: Windows runners are slower, and building 500+ Commander
# stubs for the full ES manifest takes longer than bun's 5 s default.
run: bun test --timeout 30000
validate-pr-title:
if: github.event_name == 'pull_request'
name: Validate PR title
permissions:
pull-requests: read
runs-on: ubuntu-latest
steps:
- name: PR Conventional Commit Validation
uses: ytanikin/pr-conventional-commits@639145d78959c53c43112365837e3abd21ed67c1 # v1.5.2
with:
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
add_label: "false"
megalinter:
name: MegaLinter
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
- name: MegaLinter
uses: oxsecurity/megalinter/flavors/javascript@8fbdead70d1409964ab3d5afa885e18ee85388bb # v9.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' }}
ci:
name: CI Result
if: always()
runs-on: ubuntu-latest
needs:
- test-node
- license-header
- notice-file
- test-bun
- validate-pr-title
- megalinter
steps:
- run: |
if [[ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
echo "One or more required jobs failed or were cancelled."
exit 1
fi