Skip to content

feat(connectors): generic MCP connector + schema-typed action outputs… #804

feat(connectors): generic MCP connector + schema-typed action outputs…

feat(connectors): generic MCP connector + schema-typed action outputs… #804

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install Python setuptools
run: pip install setuptools
- name: Install diff-cover
run: pip install diff-cover
- uses: actions/setup-node@v6
with:
node-version: 20
- name: Enable Corepack
run: corepack enable
- name: Install dependencies
run: yarn install
- name: Typecheck
run: yarn typecheck
- name: Lint
run: yarn lint
- name: Format check
run: yarn format:check
- name: Test
run: yarn test:coverage
- name: Enforce 80% patch coverage
if: github.event_name == 'pull_request'
run: diff-cover coverage/lcov.info --compare-branch=origin/${{ github.base_ref }} --fail-under=80
- name: Verify server CJS bundle
run: |
yarn workspace @vornrun/server build
# Fail if import.meta snuck into CJS bundle (causes runtime crash in Electron)
if grep -q 'import_meta' packages/server/dist/index.cjs; then
echo "ERROR: import_meta found in CJS bundle — will crash at runtime"
exit 1
fi
# Smoke-test: require the bundle — fails immediately if module-level code crashes
node -e "
process.on('uncaughtException', (e) => {
if (e.code === 'ERR_INVALID_ARG_TYPE' || e.code === 'ERR_INVALID_URL') {
console.error('Server bundle crash:', e.message);
process.exit(1);
}
// Ignore other async errors (missing workers, etc.)
});
try { require('./packages/server/dist/index.cjs'); } catch(e) {
if (e.code === 'ERR_INVALID_ARG_TYPE' || e.code === 'ERR_INVALID_URL') {
console.error('Server bundle crash:', e.message);
process.exit(1);
}
}
setTimeout(() => process.exit(0), 2000);
"