Skip to content

chore(deps)(deps-dev): bump @types/node from 25.9.3 to 26.2.0 #157

chore(deps)(deps-dev): bump @types/node from 25.9.3 to 26.2.0

chore(deps)(deps-dev): bump @types/node from 25.9.3 to 26.2.0 #157

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
tags: [ "v*.*.*" ]
pull_request:
# Avoid duplicate runs: use ref (not sha) so branch and tag runs don't cancel each other
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
node: [20]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Configure Git
shell: bash
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- name: Install deps
run: npm ci
# Security: Run npm audit to check for vulnerabilities
# Policy: Only fail on critical vulnerabilities to avoid blocking development
# for non-critical issues. All vulnerability levels are reported for awareness.
- name: Security Audit
run: |
echo "::group::Full Vulnerability Report (informational)"
npm audit --registry=https://registry.npmjs.org || true
echo "::endgroup::"
echo "Checking for critical vulnerabilities..."
npm audit --audit-level=critical --registry=https://registry.npmjs.org
- name: Normalize line endings
shell: bash
run: |
# Clean submodules and main repo
git submodule foreach --recursive 'git reset --hard HEAD && git clean -fd'
git add --renormalize .
git reset --hard HEAD
- name: Lint
run: npm run lint
- name: Run Tests with Coverage
run: npm run test:coverage
- name: Upload coverage to Codecov
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/coverage-final.json
fail_ci_if_error: false
verbose: true
- name: Sync and Check Idempotency
shell: bash
run: |
# 1. Run first sync
npm run sync
# 2. Check if templates are in sync
if [ -n "$(git status --porcelain templates/opencode/command)" ]; then
echo "❌ Error: Templates out of sync."
git status --porcelain templates/opencode/command
exit 1
fi
# 3. Run second sync
npm run sync
# 4. Verify idempotency (ignoring untracked files and submodules)
if [ -n "$(git status --porcelain -uno -- . ':!vendor/conductor')" ]; then
echo "❌ Error: Sync is NOT idempotent."
git status --porcelain -uno -- . ':!vendor/conductor'
git diff
exit 1
fi
echo "✅ Sync is idempotent."
- name: Verify Compatibility Matrix
run: npm run verify:compat
- name: Verify Documentation Consistency
run: npm run verify:docs
smoke-npx:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Test Local Node Installer
shell: bash
run: node bin/install.js
- name: Verify install artifacts
shell: bash
run: test -d "$HOME/.opencode/conductor-bridge" || exit 1